home *** CD-ROM | disk | FTP | other *** search
Unknown | 1988-06-12 | 16.8 KB |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was not able to be converted.
This format is not currently supported by dexvert.
Confidence | Program | Detection | Match Type | Support
|
---|
10%
| dexvert
| Truevision Targa Graphic (image/tga)
| magic
| Supported |
100%
| file
| data
| default
| |
100%
| xdgMime
| image/x-tga
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0d 00 0a 0d f4 3e 4d 37 | 4d 34 73 72 63 0d 00 14 |.....>M7|M4src...|
|00000010| 21 f4 20 62 79 20 52 6f | 62 69 6e 20 4e 65 77 6d |!. by Ro|bin Newm|
|00000020| 61 6e 2c 20 41 70 72 69 | 6c 20 31 39 38 38 0d 00 |an, Apri|l 1988..|
|00000030| 1e 45 f4 20 50 72 6f 67 | 72 61 6d 20 74 6f 20 63 |.E. Prog|ram to c|
|00000040| 6f 6e 76 65 72 74 20 6d | 6f 64 65 20 37 20 73 63 |onvert m|ode 7 sc|
|00000050| 72 65 65 6e 20 74 6f 20 | 6d 6f 64 65 20 34 20 66 |reen to |mode 4 f|
|00000060| 6f 72 20 67 72 61 70 68 | 69 63 73 20 64 75 6d 70 |or graph|ics dump|
|00000070| 69 6e 67 0d 00 28 43 f4 | 20 61 66 74 65 72 20 75 |ing..(C.| after u|
|00000080| 73 65 2c 20 6f 72 69 67 | 69 6e 61 6c 20 73 63 72 |se, orig|inal scr|
|00000090| 65 65 6e 20 61 6e 64 20 | 63 68 61 72 61 63 74 65 |een and |characte|
|000000a0| 72 20 64 65 66 69 6e 69 | 74 69 6f 6e 73 20 72 65 |r defini|tions re|
|000000b0| 73 74 6f 72 65 64 0d 00 | 32 42 f4 20 72 65 73 75 |stored..|2B. resu|
|000000c0| 6c 74 69 6e 67 20 6d 61 | 63 68 69 6e 65 20 63 6f |lting ma|chine co|
|000000d0| 64 65 20 75 74 69 6c 69 | 74 79 20 72 75 6e 73 20 |de utili|ty runs |
|000000e0| 69 6e 20 52 4d 41 20 61 | 72 65 61 2c 20 61 6e 64 |in RMA a|rea, and|
|000000f0| 20 73 65 6c 65 63 74 73 | 0d 00 3c 43 f4 20 61 6e | selects|..<C. an|
|00000100| 64 20 75 73 65 73 20 77 | 6f 72 6b 73 70 61 63 65 |d uses w|orkspace|
|00000110| 20 66 72 6f 6d 20 74 68 | 69 73 20 61 72 65 61 2c | from th|is area,|
|00000120| 20 77 68 69 63 68 20 69 | 73 20 72 65 73 74 6f 72 | which i|s restor|
|00000130| 65 64 20 6f 6e 20 65 78 | 69 74 2e 0d 00 46 41 f4 |ed on ex|it...FA.|
|00000140| 20 70 72 6f 67 72 61 6d | 20 69 73 20 62 61 73 65 | program| is base|
|00000150| 64 20 6f 6e 20 61 6e 20 | 6f 72 69 67 69 6e 61 6c |d on an |original|
|00000160| 20 42 41 53 49 43 20 70 | 72 6f 67 72 61 6d 20 63 | BASIC p|rogram c|
|00000170| 61 6c 6c 65 64 20 53 49 | 4d 55 4c 38 0d 00 50 19 |alled SI|MUL8..P.|
|00000180| f4 20 62 72 6f 61 64 63 | 61 73 74 20 6f 6e 20 43 |. broadc|ast on C|
|00000190| 45 45 46 41 58 0d 00 5a | 05 3a 0d 00 64 49 f4 20 |EEFAX..Z|.:..dI. |
|000001a0| 54 6f 20 75 73 65 20 74 | 68 65 20 75 74 69 6c 69 |To use t|he utili|
|000001b0| 74 79 20 74 79 70 65 20 | 2a 4d 37 4d 34 20 3c 6e |ty type |*M7M4 <n|
|000001c0| 61 6d 65 3e 20 77 68 65 | 72 65 20 3c 6e 61 6d 65 |ame> whe|re <name|
|000001d0| 3e 20 69 73 20 74 68 65 | 20 63 6f 6d 6d 61 6e 64 |> is the| command|
|000001e0| 20 74 6f 0d 00 6e 37 f4 | 20 61 63 74 69 76 61 74 | to..n7.| activat|
|000001f0| 65 20 74 68 65 20 6d 61 | 63 68 69 6e 65 20 63 6f |e the ma|chine co|
|00000200| 64 65 20 67 72 61 70 68 | 69 63 73 20 64 75 6d 70 |de graph|ics dump|
|00000210| 20 72 65 71 75 69 72 65 | 64 2e 0d 00 78 42 f4 20 | require|d...xB. |
|00000220| 65 67 20 2a 4d 37 4d 34 | 20 48 61 72 64 43 6f 70 |eg *M7M4| HardCop|
|00000230| 79 46 58 2e 20 54 68 65 | 20 73 61 6d 65 20 63 6f |yFX. The| same co|
|00000240| 6d 6d 61 6e 64 20 73 74 | 72 69 6e 67 20 63 61 6e |mmand st|ring can|
|00000250| 20 62 65 20 75 73 65 64 | 20 66 6f 72 0d 00 82 4b | be used| for...K|
|00000260| f4 20 67 72 61 70 68 69 | 63 73 20 6d 6f 64 65 73 |. graphi|cs modes|
|00000270| 2c 20 69 6e 20 77 68 69 | 63 68 20 63 61 73 65 20 |, in whi|ch case |
|00000280| 4d 37 4d 34 20 6a 75 6d | 70 73 20 73 74 72 61 69 |M7M4 jum|ps strai|
|00000290| 67 68 74 20 74 6f 20 74 | 68 65 20 64 75 6d 70 20 |ght to t|he dump |
|000002a0| 70 72 6f 67 72 61 6d 0d | 00 8c 05 3a 0d 00 96 10 |program.|...:....|
|000002b0| de 20 63 6f 64 65 25 20 | 26 38 30 30 0d 00 a0 11 |. code% |&800....|
|000002c0| 4f 53 5f 57 72 69 74 65 | 49 3d 32 35 36 0d 00 aa |OS_Write|I=256...|
|000002d0| 08 f2 61 73 6d 0d 00 b4 | 31 ff 28 22 53 41 56 45 |..asm...|1.("SAVE|
|000002e0| 20 4d 37 4d 34 20 22 2b | c3 7e 73 74 61 72 74 2b | M7M4 "+|.~start+|
|000002f0| 22 20 2b 22 2b c3 7e 28 | 66 69 6e 69 73 68 2d 73 |" +"+.~(|finish-s|
|00000300| 74 61 72 74 29 29 0d 00 | be 17 ff 22 53 45 54 54 |tart))..|..."SETT|
|00000310| 59 50 45 20 4d 37 4d 34 | 20 46 46 43 22 0d 00 c8 |YPE M7M4| FFC"...|
|00000320| 05 e0 0d 00 d2 09 dd f2 | 61 73 6d 0d 00 dc 0d e3 |........|asm.....|
|00000330| 5a 25 3d 30 b8 32 88 32 | 0d 00 e6 0c 50 25 3d 63 |Z%=0.2.2|....P%=c|
|00000340| 6f 64 65 25 0d 00 f0 0a | 5b 4f 50 54 5a 25 0d 00 |ode%....|[OPTZ%..|
|00000350| fa 0a 2e 73 74 61 72 74 | 0d 01 04 2a 53 55 42 20 |...start|...*SUB |
|00000360| 52 31 33 2c 52 31 33 2c | 23 33 30 20 5c 61 6c 6c |R13,R13,|#30 \all|
|00000370| 6f 77 20 66 6f 72 20 73 | 74 61 63 6b 20 22 62 75 |ow for s|tack "bu|
|00000380| 67 22 0d 01 0e 14 53 54 | 4d 46 44 20 52 31 33 21 |g"....ST|MFD R13!|
|00000390| 2c 7b 52 31 34 7d 0d 01 | 18 31 4d 4f 56 20 52 30 |,{R14}..|.1MOV R0|
|000003a0| 2c 52 31 20 5c 70 6f 69 | 6e 74 65 72 20 74 6f 20 |,R1 \poi|nter to |
|000003b0| 63 6f 6d 6d 61 6e 64 20 | 6c 69 6e 65 20 70 61 72 |command |line par|
|000003c0| 61 6d 65 74 65 72 73 0d | 01 22 31 4c 44 52 42 20 |ameters.|."1LDRB |
|000003d0| 52 30 2c 5b 52 30 5d 20 | 5c 63 68 65 63 6b 20 66 |R0,[R0] |\check f|
|000003e0| 69 72 73 74 20 70 61 72 | 61 6d 65 74 65 72 20 63 |irst par|ameter c|
|000003f0| 68 61 72 61 63 74 65 72 | 0d 01 2c 25 43 4d 50 20 |haracter|..,%CMP |
|00000400| 52 30 2c 23 33 32 20 5c | 69 73 20 69 74 20 61 20 |R0,#32 \|is it a |
|00000410| 63 6f 6e 74 72 6f 6c 20 | 63 68 61 72 3f 0d 01 36 |control |char?..6|
|00000420| 3c 41 44 52 43 43 20 52 | 30 2c 70 61 72 61 6d 65 |<ADRCC R|0,parame|
|00000430| 72 72 20 5c 65 72 72 6f | 72 20 69 66 20 73 6f 3b |rr \erro|r if so;|
|00000440| 20 6c 6f 61 64 20 52 30 | 20 77 69 74 68 20 65 72 | load R0| with er|
|00000450| 72 6f 72 20 62 6c 6f 63 | 6b 0d 01 40 1b 42 43 43 |ror bloc|k..@.BCC|
|00000460| 20 65 72 72 65 78 69 74 | 20 5c 65 72 72 6f 72 20 | errexit| \error |
|00000470| 65 78 69 74 0d 01 4a 12 | 41 44 52 20 52 30 2c 77 |exit..J.|ADR R0,w|
|00000480| 6b 73 70 61 63 65 0d 01 | 54 1e 53 54 52 20 52 31 |kspace..|T.STR R1|
|00000490| 32 2c 5b 52 30 5d 20 5c | 73 61 76 65 20 77 6b 73 |2,[R0] \|save wks|
|000004a0| 70 61 63 65 0d 01 5e 27 | 2e 63 6f 70 79 20 5c 63 |pace..^'|.copy \c|
|000004b0| 6f 70 79 20 70 61 72 61 | 6d 65 74 65 72 73 20 74 |opy para|meters t|
|000004c0| 6f 20 77 6f 72 6b 73 70 | 61 63 65 0d 01 68 13 4c |o worksp|ace..h.L|
|000004d0| 44 52 42 20 52 32 2c 5b | 52 31 5d 2c 23 31 0d 01 |DRB R2,[|R1],#1..|
|000004e0| 72 14 53 54 52 42 20 52 | 32 2c 5b 52 31 32 5d 2c |r.STRB R|2,[R12],|
|000004f0| 23 31 0d 01 7c 0e 43 4d | 50 20 52 32 2c 23 33 32 |#1..|.CM|P R2,#32|
|00000500| 0d 01 86 0c 42 43 53 20 | 63 6f 70 79 0d 01 90 1f |....BCS |copy....|
|00000510| 4d 4f 56 20 52 32 2c 23 | 30 20 5c 74 65 72 6d 69 |MOV R2,#|0 \termi|
|00000520| 6e 61 74 65 20 77 69 74 | 68 20 30 0d 01 9a 11 53 |nate wit|h 0....S|
|00000530| 54 52 42 20 52 32 2c 5b | 52 31 32 5d 0d 01 a4 21 |TRB R2,[|R12]...!|
|00000540| 4d 4f 56 20 52 30 2c 23 | 31 33 35 20 5c 63 68 65 |MOV R0,#|135 \che|
|00000550| 63 6b 20 6d 6f 64 65 20 | 2d 3e 20 52 32 0d 01 ae |ck mode |-> R2...|
|00000560| 11 53 57 49 20 22 4f 53 | 5f 42 79 74 65 22 0d 01 |.SWI "OS|_Byte"..|
|00000570| b8 35 43 4d 50 20 52 32 | 2c 23 37 20 5c 69 66 20 |.5CMP R2|,#7 \if |
|00000580| 6e 6f 74 20 6d 6f 64 65 | 20 37 20 62 79 70 61 73 |not mode| 7 bypas|
|00000590| 73 20 73 63 72 65 65 6e | 20 63 6f 6e 76 65 72 73 |s screen| convers|
|000005a0| 69 6f 6e 0d 01 c2 14 42 | 4e 45 20 67 72 61 70 68 |ion....B|NE graph|
|000005b0| 69 63 5f 6d 6f 64 65 0d | 01 cc 22 4d 4f 56 20 52 |ic_mode.|.."MOV R|
|000005c0| 30 2c 23 35 20 5c 63 68 | 65 63 6b 20 52 4d 41 20 |0,#5 \ch|eck RMA |
|000005d0| 77 6f 72 6b 73 70 61 63 | 65 0d 01 d6 14 53 57 49 |workspac|e....SWI|
|000005e0| 20 22 58 4f 53 5f 4d 6f | 64 75 6c 65 22 0d 01 e0 | "XOS_Mo|dule"...|
|000005f0| 3d 43 4d 50 20 52 32 2c | 23 26 42 34 30 20 5c 69 |=CMP R2,|#&B40 \i|
|00000600| 73 20 74 68 65 69 72 20 | 65 6e 6f 75 67 68 20 72 |s their |enough r|
|00000610| 6f 6f 6d 20 66 6f 72 20 | 75 74 69 6c 69 74 79 20 |oom for |utility |
|00000620| 77 6f 72 6b 73 70 61 63 | 65 3f 0d 01 ea 3b 41 44 |workspac|e?...;AD|
|00000630| 52 43 43 20 52 30 2c 52 | 4d 41 65 72 72 20 5c 65 |RCC R0,R|MAerr \e|
|00000640| 72 72 6f 72 20 69 66 20 | 6e 6f 74 3b 20 52 30 20 |rror if |not; R0 |
|00000650| 70 6f 69 6e 74 73 20 74 | 6f 20 65 72 72 6f 72 20 |points t|o error |
|00000660| 62 6c 6f 63 6b 0d 01 f4 | 0c 2e 65 72 72 65 78 69 |block...|..errexi|
|00000670| 74 0d 01 fe 21 54 45 51 | 43 43 50 20 52 31 35 2c |t...!TEQ|CCP R15,|
|00000680| 23 31 3c 3c 32 38 20 5c | 73 65 74 20 56 20 66 6c |#1<<28 \|set V fl|
|00000690| 61 67 0d 02 08 1b 4c 44 | 4d 43 43 46 44 20 52 31 |ag....LD|MCCFD R1|
|000006a0| 33 21 2c 7b 50 43 7d 20 | 5c 65 78 69 74 0d 02 12 |3!,{PC} |\exit...|
|000006b0| 27 4d 4f 56 20 52 30 2c | 23 36 20 5c 63 6c 61 69 |'MOV R0,|#6 \clai|
|000006c0| 6d 20 77 6f 72 6b 73 70 | 61 63 65 20 66 72 6f 6d |m worksp|ace from|
|000006d0| 20 52 4d 41 0d 02 1c 10 | 4d 4f 56 20 52 33 2c 23 | RMA....|MOV R3,#|
|000006e0| 26 42 34 30 0d 02 26 14 | 53 57 49 20 22 58 4f 53 |&B40..&.|SWI "XOS|
|000006f0| 5f 4d 6f 64 75 6c 65 22 | 0d 02 30 2a 4c 44 4d 56 |_Module"|..0*LDMV|
|00000700| 53 46 44 20 52 31 33 21 | 2c 7b 50 43 7d 20 5c 65 |SFD R13!|,{PC} \e|
|00000710| 78 69 74 20 69 66 20 63 | 6c 61 69 6d 20 66 61 69 |xit if c|laim fai|
|00000720| 6c 73 0d 02 3a 3a 41 44 | 52 20 52 30 2c 76 61 72 |ls..::AD|R R0,var|
|00000730| 61 64 64 20 5c 73 61 76 | 65 20 70 6f 69 6e 74 65 |add \sav|e pointe|
|00000740| 72 20 74 6f 20 52 4d 41 | 20 77 6f 72 6b 73 70 61 |r to RMA| workspa|
|00000750| 63 65 20 69 6e 20 76 61 | 72 61 64 64 0d 02 44 0f |ce in va|radd..D.|
|00000760| 53 54 52 20 52 32 2c 5b | 52 30 5d 0d 02 58 3e 5c |STR R2,[|R0]..X>\|
|00000770| 66 72 6f 6d 20 68 65 72 | 65 20 6f 6e 77 61 72 64 |from her|e onward|
|00000780| 73 20 72 65 67 73 20 61 | 72 65 20 75 73 65 64 20 |s regs a|re used |
|00000790| 61 73 20 66 6f 6c 6c 6f | 77 73 3b 20 52 30 2d 52 |as follo|ws; R0-R|
|000007a0| 31 20 73 63 72 61 74 63 | 68 0d 02 62 42 5c 52 32 |1 scratc|h..bB\R2|
|000007b0| 3d 63 68 61 72 2c 20 52 | 33 3d 63 68 61 72 5f 73 |=char, R|3=char_s|
|000007c0| 74 6f 72 65 2c 20 52 34 | 20 67 72 61 70 68 5f 66 |tore, R4| graph_f|
|000007d0| 6f 6e 74 2c 20 52 35 3d | 64 6f 75 62 6c 65 5f 72 |ont, R5=|double_r|
|000007e0| 6f 77 2c 20 52 36 3d 66 | 6f 6e 74 0d 02 6c 47 5c |ow, R6=f|ont..lG\|
|000007f0| 52 37 3d 6d 6f 64 65 2c | 20 52 38 3d 58 2c 20 52 |R7=mode,| R8=X, R|
|00000800| 39 3d 59 2c 20 52 31 30 | 3d 68 6f 6c 64 5f 63 68 |9=Y, R10|=hold_ch|
|00000810| 61 72 2c 20 52 31 31 3d | 66 6f 72 65 67 72 6f 75 |ar, R11=|foregrou|
|00000820| 6e 64 2c 20 52 31 32 3d | 62 61 63 6b 67 72 6f 75 |nd, R12=|backgrou|
|00000830| 6e 64 0d 02 76 47 5c 72 | 65 67 69 73 74 65 72 73 |nd..vG\r|egisters|
|00000840| 20 61 72 65 20 66 69 72 | 73 74 20 73 61 76 65 64 | are fir|st saved|
|00000850| 20 6f 6e 20 73 74 61 63 | 6b 20 69 66 20 75 73 65 | on stac|k if use|
|00000860| 64 20 66 6f 72 20 6f 74 | 68 65 72 20 74 65 6d 70 |d for ot|her temp|
|00000870| 6f 72 61 72 79 20 75 73 | 65 0d 02 80 05 5c 0d 02 |orary us|e....\..|
|00000880| 8a 3b 5c 63 6f 6e 73 74 | 61 6e 74 73 20 65 6d 70 |.;\const|ants emp|
|00000890| 6c 6f 79 65 64 3b 20 61 | 6c 70 68 61 6e 75 6d 65 |loyed; a|lphanume|
|000008a0| 72 69 63 73 3d 30 2c 20 | 63 6f 6e 74 69 67 75 6f |rics=0, |contiguo|
|000008b0| 75 73 3d 31 32 38 2d 33 | 32 0d 02 94 42 5c 73 65 |us=128-3|2...B\se|
|000008c0| 70 61 72 61 74 65 64 3d | 31 32 38 2c 20 67 72 61 |parated=|128, gra|
|000008d0| 70 68 5f 6d 6f 64 65 3d | 31 2c 20 68 6f 6c 64 5f |ph_mode=|1, hold_|
|000008e0| 67 72 61 70 68 69 63 73 | 3d 32 2c 20 64 6f 75 62 |graphics|=2, doub|
|000008f0| 6c 65 5f 68 65 69 67 68 | 74 3d 34 0d 02 9e 15 5c |le_heigh|t=4....\|
|00000900| 75 70 70 65 72 3d 31 2c | 20 6c 6f 77 65 72 3d 35 |upper=1,| lower=5|
|00000910| 0d 02 b2 1f 42 4c 20 73 | 61 76 65 20 5c 73 61 76 |....BL s|ave \sav|
|00000920| 65 20 6d 6f 64 65 20 37 | 20 73 63 72 65 65 6e 0d |e mode 7| screen.|
|00000930| 02 bc 25 53 57 49 20 22 | 4f 53 5f 57 72 69 74 65 |..%SWI "|OS_Write|
|00000940| 53 22 20 5c 63 68 61 6e | 67 65 20 74 6f 20 6d 6f |S" \chan|ge to mo|
|00000950| 64 65 20 34 0d 02 c6 16 | 45 51 55 42 32 32 3a 45 |de 4....|EQUB22:E|
|00000960| 51 55 42 34 3a 41 4c 49 | 47 4e 0d 02 d0 19 4d 4f |QUB4:ALI|GN....MO|
|00000970| 56 20 52 35 2c 23 30 20 | 5c 64 6f 75 62 6c 65 5f |V R5,#0 |\double_|
|00000980| 72 6f 77 0d 02 da 34 42 | 4c 20 73 61 76 65 63 68 |row...4B|L savech|
|00000990| 61 72 20 5c 73 61 76 65 | 20 65 78 69 73 74 69 6e |ar \save| existin|
|000009a0| 67 20 63 68 61 72 61 63 | 74 65 72 20 64 65 66 69 |g charac|ter defi|
|000009b0| 6e 69 74 69 6f 6e 73 0d | 02 e4 31 42 4c 20 64 65 |nitions.|..1BL de|
|000009c0| 66 63 68 61 72 73 20 5c | 64 65 66 69 6e 65 20 6e |fchars \|define n|
|000009d0| 65 77 20 63 68 61 72 61 | 63 74 65 72 20 64 65 66 |ew chara|cter def|
|000009e0| 69 6e 69 74 69 6f 6e 73 | 0d 02 ee 12 4d 4f 56 20 |initions|....MOV |
|000009f0| 52 39 2c 23 30 20 5c 59 | 3d 30 0d 02 f8 20 2e 72 |R9,#0 \Y|=0... .r|
|00000a00| 6f 77 73 74 61 72 74 20 | 5c 59 20 6c 6f 6f 70 20 |owstart |\Y loop |
|00000a10| 75 6e 74 69 6c 20 59 3e | 32 34 0d 03 02 29 4d 4f |until Y>|24...)MO|
|00000a20| 56 20 52 34 2c 23 31 32 | 38 2d 33 32 20 5c 67 72 |V R4,#12|8-32 \gr|
|00000a30| 61 70 68 5f 66 6f 6e 74 | 20 63 6f 6e 74 69 67 75 |aph_font| contigu|
|00000a40| 6f 75 73 0d 03 0c 21 4d | 4f 56 20 52 36 2c 23 30 |ous...!M|OV R6,#0|
|00000a50| 20 5c 66 6f 6e 74 20 61 | 6c 70 68 61 6e 75 6d 65 | \font a|lphanume|
|00000a60| 72 69 63 73 0d 03 16 15 | 4d 4f 56 20 52 37 2c 23 |rics....|MOV R7,#|
|00000a70| 30 20 5c 6d 6f 64 65 20 | 30 0d 03 20 1d 4d 4f 56 |0 \mode |0.. .MOV|
|00000a80| 20 52 31 30 2c 23 33 32 | 20 5c 68 6f 6c 64 5f 63 | R10,#32| \hold_c|
|00000a90| 68 61 72 20 33 32 0d 03 | 2a 22 43 4d 50 20 52 35 |har 32..|*"CMP R5|
|00000aa0| 2c 23 31 20 5c 64 6f 75 | 62 6c 65 5f 72 6f 77 20 |,#1 \dou|ble_row |
|00000ab0| 3d 20 75 70 70 65 72 3f | 0d 03 34 25 ec 51 20 52 |= upper?|..4%.Q R|
|00000ac0| 35 2c 23 35 20 5c 79 65 | 73 2c 20 64 6f 75 62 6c |5,#5 \ye|s, doubl|
|00000ad0| 65 5f 72 6f 77 20 3d 20 | 6c 6f 77 65 72 0d 03 3e |e_row = |lower..>|
|00000ae0| 23 4d 4f 56 4e 45 20 52 | 35 2c 23 30 20 5c 6e 6f |#MOVNE R|5,#0 \no|
|00000af0| 2c 20 64 6f 75 62 6c 65 | 5f 72 6f 77 20 3d 20 30 |, double|_row = 0|
|00000b00| 0d 03 48 1e 4d 4f 56 20 | 52 31 31 2c 23 37 20 5c |..H.MOV |R11,#7 \|
|00000b10| 66 6f 72 65 67 72 6f 75 | 6e 64 20 3d 20 37 0d 03 |foregrou|nd = 7..|
|00000b20| 52 1e 4d 4f 56 20 52 31 | 32 2c 23 30 20 5c 62 61 |R.MOV R1|2,#0 \ba|
|00000b30| 63 6b 67 72 6f 75 6e 64 | 20 3d 20 30 0d 03 5c 12 |ckground| = 0..\.|
|00000b40| 4d 4f 56 20 52 30 2c 23 | 31 20 5c fb 20 31 0d 03 |MOV R0,#|1 \. 1..|
|00000b50| 66 0d 42 4c 20 63 6f 6c | 6f 75 72 0d 03 70 16 4d |f.BL col|our..p.M|
|00000b60| 4f 56 20 52 30 2c 23 31 | 32 38 20 5c fb 20 31 32 |OV R0,#1|28 \. 12|
|00000b70| 38 0d 03 7a 0d 42 4c 20 | 63 6f 6c 6f 75 72 0d 03 |8..z.BL |colour..|
|00000b80| 84 12 4d 4f 56 20 52 38 | 2c 23 30 20 5c 58 3d 30 |..MOV R8|,#0 \X=0|
|00000b90| 0d 03 8e 23 2e 63 6f 6c | 75 6d 6e 73 74 61 72 74 |...#.col|umnstart|
|00000ba0| 20 5c 58 20 6c 6f 6f 70 | 20 75 6e 74 69 6c 20 58 | \X loop| until X|
|00000bb0| 3e 33 39 0d 03 98 47 41 | 44 52 20 52 31 2c 76 61 |>39...GA|DR R1,va|
|00000bc0| 72 61 64 64 20 5c 70 6f | 69 6e 74 65 72 20 74 6f |radd \po|inter to|
|00000bd0| 20 52 4d 41 20 77 6f 72 | 6b 73 70 61 63 65 20 3d | RMA wor|kspace =|
|00000be0| 20 6d 6f 64 65 20 37 20 | 73 61 76 65 64 20 73 63 | mode 7 |saved sc|
|00000bf0| 72 65 65 6e 20 73 74 61 | 72 74 0d 03 a2 2f 4c 44 |reen sta|rt.../LD|
|00000c00| 52 20 52 31 2c 5b 52 31 | 5d 20 5c 52 31 20 3d 20 |R R1,[R1|] \R1 = |
|00000c10| 73 61 76 65 64 20 6d 6f | 64 65 20 37 20 73 63 72 |saved mo|de 7 scr|
|00000c20| 65 65 6e 20 73 74 61 72 | 74 0d 03 ac 13 4d 4f 56 |een star|t....MOV|
|00000c30| 20 52 30 2c 52 39 2c 41 | 53 4c 23 35 0d 03 b6 1c | R0,R9,A|SL#5....|
|00000c40| 41 44 44 20 52 30 2c 52 | 30 2c 52 39 2c 41 53 4c |ADD R0,R|0,R9,ASL|
|00000c50| 23 33 20 5c 59 2a 34 30 | 0d 03 c0 17 41 44 44 20 |#3 \Y*40|....ADD |
|00000c60| 52 30 2c 52 30 2c 52 38 | 20 5c 61 64 64 20 58 0d |R0,R0,R8| \add X.|
|00000c70| 03 ca 34 4c 44 52 42 20 | 52 32 2c 5b 52 31 2c 52 |..4LDRB |R2,[R1,R|
|00000c80| 30 5d 20 5c 67 65 74 20 | 6e 65 78 74 20 62 79 74 |0] \get |next byt|
|00000c90| 65 20 66 72 6f 6d 20 73 | 61 76 65 64 20 73 63 72 |e from s|aved scr|
|00000ca0| 65 65 6e 0d 03 d4 1c 80 | 20 52 32 2c 52 32 2c 23 |een.....| R2,R2,#|
|00000cb0| 31 32 37 20 5c 80 20 77 | 69 74 68 20 31 32 37 0d |127 \. w|ith 127.|
|00000cc0| 03 de 20 54 53 54 20 52 | 32 2c 23 33 32 20 5c 20 |.. TST R|2,#32 \ |
|00000cd0| 69 73 20 63 68 61 72 20 | 80 20 33 32 20 3e 30 0d |is char |. 32 >0.|
|00000ce0| 03 e8 22 41 44 44 4e 45 | 20 52 32 2c 52 32 2c 52 |.."ADDNE| R2,R2,R|
|00000cf0| 36 20 5c 61 64 64 20 66 | 6f 6e 74 20 69 66 20 73 |6 \add f|ont if s|
|00000d00| 6f 0d 03 f2 0b 2e 62 65 | 66 6f 72 65 0d 03 fc 0e |o.....be|fore....|
|00000d10| 43 4d 50 20 52 32 2c 23 | 31 32 0d 04 06 0b 42 4e |CMP R2,#|12....BN|
|00000d20| 45 20 43 31 33 0d 04 10 | 2e 42 49 43 20 52 37 2c |E C13...|.BIC R7,|
|00000d30| 52 37 2c 23 34 20 5c 6d | 6f 64 65 3d 6d 6f 64 65 |R7,#4 \m|ode=mode|
|00000d40| 20 80 20 ac 28 64 6f 75 | 62 6c 65 5f 68 65 69 67 | . .(dou|ble_heig|
|00000d50| 68 74 29 0d 04 1a 1d 4d | 4f 56 20 52 31 30 2c 23 |ht)....M|OV R10,#|
|00000d60| 33 32 20 5c 68 6f 6c 64 | 5f 63 68 61 72 3d 33 32 |32 \hold|_char=32|
|00000d70| 0d 04 24 0e 42 20 63 61 | 73 65 5f 65 6e 64 0d 04 |..$.B ca|se_end..|
|00000d80| 2e 08 2e 43 31 33 0d 04 | 38 0e 43 4d 50 20 52 32 |...C13..|8.CMP R2|
|00000d90| 2c 23 31 33 0d 04 42 0b | 42 4e 45 20 43 32 38 0d |,#13..B.|BNE C28.|
|00000da0| 04 4c 2a 84 52 20 52 37 | 2c 52 37 2c 23 34 20 5c |.L*.R R7|,R7,#4 \|
|00000db0| 6d 6f 64 65 3d 6d 6f 64 | 65 20 84 20 64 6f 75 62 |mode=mod|e . doub|
|00000dc0| 6c 65 5f 68 65 69 67 68 | 74 0d 04 56 1f 43 4d 50 |le_heigh|t..V.CMP|
|00000dd0| 20 52 35 2c 23 30 20 5c | 69 73 20 64 6f 75 62 6c | R5,#0 \|is doubl|
|00000de0| 65 5f 72 6f 77 20 30 3f | 0d 04 60 27 ec 51 20 52 |e_row 0?|..`'.Q R|
|00000df0| 35 2c 23 31 20 5c 69 66 | 20 79 65 73 20 64 6f 75 |5,#1 \if| yes dou|
|00000e00| 62 6c 65 5f 72 6f 77 20 | 3d 20 75 70 70 65 72 0d |ble_row |= upper.|
|00000e10| 04 6a 1b 4d 4f 56 20 52 | 31 30 2c 23 30 20 5c 68 |.j.MOV R|10,#0 \h|
|00000e20| 6f 6c 64 5f 63 68 61 72 | 3d 30 0d 04 74 0e 42 20 |old_char|=0..t.B |
|00000e30| 63 61 73 65 5f 65 6e 64 | 0d 04 7e 08 2e 43 32 38 |case_end|..~..C28|
|00000e40| 0d 04 88 0e 43 4d 50 20 | 52 32 2c 23 32 38 0d 04 |....CMP |R2,#28..|
|00000e50| 92 0b 42 4e 45 20 43 32 | 39 0d 04 9c 1e 4d 4f 56 |..BNE C2|9....MOV|
|00000e60| 20 52 31 32 2c 23 30 20 | 5c 62 61 63 6b 67 72 6f | R12,#0 |\backgro|
|00000e70| 75 6e 64 20 3d 20 30 0d | 04 a6 16 4d 4f 56 20 52 |und = 0.|...MOV R|
|00000e80| 30 2c 23 31 32 38 20 5c | fb 20 31 32 38 0d 04 b0 |0,#128 \|. 128...|
|00000e90| 0d 42 4c 20 63 6f 6c 6f | 75 72 0d 04 ba 0e 42 20 |.BL colo|ur....B |
|00000ea0| 63 61 73 65 5f 65 6e 64 | 0d 04 c4 08 2e 43 32 39 |case_end|.....C29|
|00000eb0| 0d 04 ce 0e 43 4d 50 20 | 52 32 2c 23 32 39 0d 04 |....CMP |R2,#29..|
|00000ec0| d8 0b 42 4e 45 20 43 33 | 30 0d 04 e2 28 4d 4f 56 |..BNE C3|0...(MOV|
|00000ed0| 20 52 31 32 2c 52 31 31 | 20 5c 62 61 63 6b 67 72 | R12,R11| \backgr|
|00000ee0| 6f 75 6e 64 20 3d 20 66 | 6f 72 65 67 72 6f 75 6e |ound = f|oregroun|
|00000ef0| 64 0d 04 ec 14 41 44 52 | 20 52 31 2c 6c 75 6d 69 |d....ADR| R1,lumi|
|00000f00| 6e 61 6e 63 65 0d 04 f6 | 2a 4c 44 52 42 20 52 30 |nance...|*LDRB R0|
|00000f10| 2c 5b 52 31 2c 52 31 31 | 5d 20 5c 6c 75 6d 69 6e |,[R1,R11|] \lumin|
|00000f20| 61 6e 63 65 3f 66 6f 72 | 65 67 72 6f 75 6e 64 0d |ance?for|eground.|
|00000f30| 05 00 12 43 4d 50 20 52 | 30 2c 23 34 20 5c 3e 33 |...CMP R|0,#4 \>3|
|00000f40| 3f 0d 05 0a 1d 4d 4f 56 | 43 53 20 52 30 2c 23 31 |?....MOV|CS R0,#1|
|00000f50| 32 39 20 5c 79 65 73 2c | 20 fb 20 31 32 39 0d 05 |29 \yes,| . 129..|
|00000f60| 14 1c 4d 4f 56 43 43 20 | 52 30 2c 23 31 32 38 20 |..MOVCC |R0,#128 |
|00000f70| 5c 6e 6f 2c 20 fb 20 31 | 32 38 0d 05 1e 0d 42 4c |\no, . 1|28....BL|
|00000f80| 20 63 6f 6c 6f 75 72 0d | 05 28 12 4d 4f 56 20 52 | colour.|.(.MOV R|
|00000f90| 30 2c 23 30 20 5c fb 20 | 30 0d 05 32 0d 42 4c 20 |0,#0 \. |0..2.BL |
|00000fa0| 63 6f 6c 6f 75 72 0d 05 | 3c 0e 42 20 63 61 73 65 |colour..|<.B case|
|00000fb0| 5f 65 6e 64 0d 05 46 08 | 2e 43 33 30 0d 05 50 0e |_end..F.|.C30..P.|
|00000fc0| 43 4d 50 20 52 32 2c 23 | 33 30 0d 05 5a 10 42 4e |CMP R2,#|30..Z.BN|
|00000fd0| 45 20 63 61 73 65 5f 65 | 6e 64 0d 05 64 2c 84 52 |E case_e|nd..d,.R|
|00000fe0| 20 52 37 2c 52 37 2c 23 | 32 20 5c 6d 6f 64 65 20 | R7,R7,#|2 \mode |
|00000ff0| 3d 20 6d 6f 64 65 20 84 | 20 68 6f 6c 64 5f 67 72 |= mode .| hold_gr|
|00001000| 61 70 68 69 63 73 0d 05 | 6e 0d 2e 63 61 73 65 5f |aphics..|n..case_|
|00001010| 65 6e 64 0d 05 78 1e 4d | 4f 56 20 52 33 2c 52 32 |end..x.M|OV R3,R2|
|00001020| 20 5c 63 68 61 72 5f 73 | 74 6f 72 65 3d 63 68 61 | \char_s|tore=cha|
|00001030| 72 0d 05 82 28 54 53 54 | 20 52 37 2c 23 32 20 5c |r...(TST| R7,#2 \|
|00001040| 74 65 73 74 20 6d 6f 64 | 65 20 80 20 68 6f 6c 64 |test mod|e . hold|
|00001050| 5f 67 72 61 70 68 69 63 | 73 0d 05 8c 10 42 45 51 |_graphic|s....BEQ|
|00001060| 20 6e 6f 74 5f 68 6f 6c | 64 0d 05 96 25 54 53 54 | not_hol|d...%TST|
|00001070| 20 52 37 2c 23 31 20 5c | 74 65 73 74 20 6d 6f 64 | R7,#1 \|test mod|
|00001080| 65 20 80 20 67 72 61 70 | 68 5f 6d 6f 64 65 0d 05 |e . grap|h_mode..|
|00001090| a0 10 42 45 51 20 6e 6f | 74 5f 68 6f 6c 64 0d 05 |..BEQ no|t_hold..|
|000010a0| aa 1c 43 4d 50 20 52 32 | 2c 23 33 32 20 5c 69 73 |..CMP R2|,#32 \is|
|000010b0| 20 63 68 61 72 20 3c 20 | 33 32 0d 05 b4 10 42 43 | char < |32....BC|
|000010c0| 53 20 6e 6f 74 5f 68 6f | 6c 64 0d 05 be 20 43 4d |S not_ho|ld... CM|
|000010d0| 50 20 52 31 30 2c 23 30 | 20 5c 69 73 20 68 6f 6c |P R10,#0| \is hol|
|000010e0| 64 5f 63 68 61 72 20 3d | 20 30 0d 05 c8 10 42 45 |d_char =| 0....BE|
|000010f0| 51 20 6e 6f 74 5f 68 6f | 6c 64 0d 05 d2 20 4d 4f |Q not_ho|ld... MO|
|00001100| 56 20 52 32 2c 52 31 30 | 20 5c 63 68 61 72 20 3d |V R2,R10| \char =|
|00001110| 20 68 6f 6c 64 5f 63 68 | 61 72 0d 05 dc 0d 2e 6e | hold_ch|ar.....n|
|00001120| 6f 74 5f 68 6f 6c 64 0d | 05 e6 0b 42 4c 20 64 72 |ot_hold.|...BL dr|
|00001130| 61 77 0d 05 f0 20 4d 4f | 56 20 52 32 2c 52 33 20 |aw... MO|V R2,R3 |
|00001140| 5c 63 68 61 72 20 3d 20 | 63 68 61 72 5f 73 74 6f |\char = |char_sto|
|00001150| 72 65 0d 05 fa 1d 43 4d | 50 20 52 32 2c 23 31 32 |re....CM|P R2,#12|
|00001160| 38 20 5c 69 73 20 63 68 | 61 72 3e 31 32 37 3f 0d |8 \is ch|ar>127?.|
|00001170| 06 04 28 4d 4f 56 43 53 | 20 52 31 30 2c 52 32 20 |..(MOVCS| R10,R2 |
|00001180| 5c 69 66 20 79 65 73 2c | 20 68 6f 6c 64 5f 63 68 |\if yes,| hold_ch|
|00001190| 61 72 3d 63 68 61 72 0d | 06 0e 0a 2e 61 66 74 65 |ar=char.|....afte|
|000011a0| 72 0d 06 18 0e 43 4d 50 | 20 52 32 2c 23 32 35 0d |r....CMP| R2,#25.|
|000011b0| 06 22 0b 42 4e 45 20 43 | 32 36 0d 06 2c 2b 4d 4f |.".BNE C|26..,+MO|
|000011c0| 56 20 52 34 2c 23 31 32 | 38 2d 33 32 20 5c 67 72 |V R4,#12|8-32 \gr|
|000011d0| 61 70 68 5f 66 6f 6e 74 | 20 3d 20 63 6f 6e 74 69 |aph_font| = conti|
|000011e0| 67 75 6f 75 73 0d 06 36 | 26 54 53 54 20 52 37 2c |guous..6|&TST R7,|
|000011f0| 23 31 20 5c 69 73 20 6d | 6f 64 65 20 80 20 67 72 |#1 \is m|ode . gr|
|00001200| 61 70 68 5f 6d 6f 64 65 | 3c 3e 30 0d 06 40 28 4d |aph_mode|<>0..@(M|
|00001210| 4f 56 4e 45 20 52 36 2c | 52 34 20 5c 69 66 20 73 |OVNE R6,|R4 \if s|
|00001220| 6f 20 66 6f 6e 74 20 3d | 20 67 72 61 70 68 5f 66 |o font =| graph_f|
|00001230| 6f 6e 74 0d 06 4a 08 2e | 43 32 36 0d 06 54 0e 43 |ont..J..|C26..T.C|
|00001240| 4d 50 20 52 32 2c 23 32 | 36 0d 06 5e 0b 42 4e 45 |MP R2,#2|6..^.BNE|
|00001250| 20 43 33 31 0d 06 68 27 | 4d 4f 56 20 52 34 2c 23 | C31..h'|MOV R4,#|
|00001260| 31 32 38 20 5c 67 72 61 | 70 68 5f 66 6f 6e 74 20 |128 \gra|ph_font |
|00001270| 3d 20 73 65 70 61 72 61 | 74 65 64 0d 06 72 26 54 |= separa|ted..r&T|
|00001280| 53 54 20 52 37 2c 23 31 | 20 5c 69 73 20 6d 6f 64 |ST R7,#1| \is mod|
|00001290| 65 20 80 20 67 72 61 70 | 68 5f 6d 6f 64 65 3c 3e |e . grap|h_mode<>|
|000012a0| 30 0d 06 7c 28 4d 4f 56 | 4e 45 20 52 36 2c 52 34 |0..|(MOV|NE R6,R4|
|000012b0| 20 5c 69 66 20 73 6f 20 | 66 6f 6e 74 20 3d 20 67 | \if so |font = g|
|000012c0| 72 61 70 68 5f 66 6f 6e | 74 0d 06 86 08 2e 43 33 |raph_fon|t.....C3|
|000012d0| 31 0d 06 90 0e 43 4d 50 | 20 52 32 2c 23 33 31 0d |1....CMP| R2,#31.|
|000012e0| 06 9a 33 42 49 43 45 51 | 20 52 37 2c 52 37 2c 23 |..3BICEQ| R7,R7,#|
|000012f0| 32 20 5c 6d 6f 64 65 20 | 3d 20 6d 6f 64 65 20 80 |2 \mode |= mode .|
|00001300| 20 ac 20 28 68 6f 6c 64 | 5f 67 72 61 70 68 69 63 | . (hold|_graphic|
|00001310| 73 29 0d 06 a4 1b 43 4d | 50 20 52 32 2c 23 33 32 |s)....CM|P R2,#32|
|00001320| 20 5c 69 73 20 63 68 61 | 72 20 3c 33 32 0d 06 ae | \is cha|r <32...|
|00001330| 1e 42 43 53 20 73 6b 69 | 70 5f 69 66 20 5c 62 72 |.BCS ski|p_if \br|
|00001340| 61 6e 63 68 20 69 66 20 | 6e 6f 74 0d 06 b8 20 80 |anch if |not... .|
|00001350| 53 20 52 30 2c 52 32 2c | 23 31 35 20 5c 52 30 20 |S R0,R2,|#15 \R0 |
|00001360| 3d 20 63 68 61 72 20 80 | 20 31 35 0d 06 c2 1f 42 |= char .| 15....B|
|00001370| 45 51 20 73 6b 69 70 5f | 69 66 20 5c 62 72 61 6e |EQ skip_|if \bran|
|00001380| 63 68 20 69 66 20 52 30 | 3c 31 0d 06 cc 0d 43 4d |ch if R0|<1....CM|
|00001390| 50 20 52 30 2c 23 38 0d | 06 d6 1f 42 43 53 20 73 |P R0,#8.|...BCS s|
|000013a0| 6b 69 70 5f 69 66 20 5c | 62 72 61 6e 63 68 20 69 |kip_if \|branch i|
|000013b0| 66 20 52 30 3e 37 0d 06 | e0 24 80 20 52 31 31 2c |f R0>7..|.$. R11,|
|000013c0| 52 32 2c 23 37 20 5c 66 | 6f 72 65 67 72 6f 75 6e |R2,#7 \f|oregroun|
|000013d0| 64 3d 63 68 61 72 20 80 | 20 37 0d 06 ea 14 41 44 |d=char .| 7....AD|
|000013e0| 52 20 52 31 2c 6c 75 6d | 69 6e 61 6e 63 65 0d 06 |R R1,lum|inance..|
|000013f0| f4 1e 4c 44 52 42 20 52 | 30 2c 5b 52 31 2c 52 31 |..LDRB R|0,[R1,R1|
|00001400| 31 5d 20 5c 6c 75 6d 3f | 66 6f 72 65 0d 06 fe 13 |1] \lum?|fore....|
|00001410| 53 54 4d 46 44 20 52 31 | 33 21 2c 7b 52 30 7d 0d |STMFD R1|3!,{R0}.|
|00001420| 07 08 1e 4c 44 52 42 20 | 52 30 2c 5b 52 31 2c 52 |...LDRB |R0,[R1,R|
|00001430| 31 32 5d 20 5c 6c 75 6d | 3f 62 61 63 6b 0d 07 12 |12] \lum|?back...|
|00001440| 1d 4c 44 4d 46 44 20 52 | 31 33 21 2c 7b 52 31 7d |.LDMFD R|13!,{R1}|
|00001450| 20 5c 6c 75 6d 3f 66 6f | 72 65 0d 07 1c 23 43 4d | \lum?fo|re...#CM|
|00001460| 50 20 52 31 2c 52 30 20 | 5c 69 73 20 6c 75 6d 3f |P R1,R0 |\is lum?|
|00001470| 66 6f 72 65 3e 6c 75 6d | 3f 62 61 63 6b 0d 07 26 |fore>lum|?back..&|
|00001480| 19 4d 4f 56 43 53 20 52 | 30 2c 23 31 20 5c 79 65 |.MOVCS R|0,#1 \ye|
|00001490| 73 2c 20 fb 20 31 0d 07 | 30 18 4d 4f 56 43 43 20 |s, . 1..|0.MOVCC |
|000014a0| 52 30 2c 23 30 20 5c 6e | 6f 2c 20 fb 20 30 0d 07 |R0,#0 \n|o, . 0..|
|000014b0| 3a 0d 42 4c 20 63 6f 6c | 6f 75 72 0d 07 44 1d 4d |:.BL col|our..D.M|
|000014c0| 4f 56 43 53 20 52 30 2c | 23 31 32 38 20 5c 79 65 |OVCS R0,|#128 \ye|
|000014d0| 73 2c 20 fb 20 31 32 38 | 0d 07 4e 1c 4d 4f 56 43 |s, . 128|..N.MOVC|
|000014e0| 43 20 52 30 2c 23 31 32 | 39 20 5c 6e 6f 2c 20 fb |C R0,#12|9 \no, .|
|000014f0| 20 31 32 39 0d 07 58 0d | 42 4c 20 63 6f 6c 6f 75 | 129..X.|BL colou|
|00001500| 72 0d 07 62 21 54 53 54 | 20 52 32 2c 23 31 36 20 |r..b!TST| R2,#16 |
|00001510| 5c 69 73 20 63 68 61 72 | 20 80 20 31 36 20 3c 3e |\is char| . 16 <>|
|00001520| 30 3f 0d 07 6c 2b 84 52 | 4e 45 20 52 37 2c 52 37 |0?..l+.R|NE R7,R7|
|00001530| 2c 23 31 20 5c 6d 6f 64 | 65 20 3d 20 6d 6f 64 65 |,#1 \mod|e = mode|
|00001540| 20 84 20 67 72 61 70 68 | 5f 6d 6f 64 65 0d 07 76 | . graph|_mode..v|
|00001550| 22 4d 4f 56 4e 45 20 52 | 36 2c 52 34 20 5c 66 6f |"MOVNE R|6,R4 \fo|
|00001560| 6e 74 20 3d 20 67 72 61 | 70 68 5f 66 6f 6e 74 0d |nt = gra|ph_font.|
|00001570| 07 80 2e 42 49 43 45 51 | 20 52 37 2c 52 37 2c 23 |...BICEQ| R7,R7,#|
|00001580| 31 20 5c 6d 6f 64 65 20 | 3d 20 6d 6f 64 65 20 80 |1 \mode |= mode .|
|00001590| 20 ac 20 67 72 61 70 68 | 5f 6d 6f 64 65 0d 07 8a | . graph|_mode...|
|000015a0| 22 ec 51 20 52 36 2c 23 | 30 20 5c 66 6f 6e 74 20 |".Q R6,#|0 \font |
|000015b0| 3d 20 61 6c 70 68 61 6e | 75 6d 65 72 69 63 73 0d |= alphan|umerics.|
|000015c0| 07 94 1c ec 51 20 52 31 | 30 2c 23 30 20 5c 68 6f |....Q R1|0,#0 \ho|
|000015d0| 6c 64 5f 63 68 61 72 20 | 3d 20 30 0d 07 9e 0c 2e |ld_char |= 0.....|
|000015e0| 73 6b 69 70 5f 69 66 0d | 07 a8 17 41 44 44 20 52 |skip_if.|...ADD R|
|000015f0| 38 2c 52 38 2c 23 31 20 | 5c 58 3d 58 2b 31 0d 07 |8,R8,#1 |\X=X+1..|
|00001600| b2 19 43 4d 50 20 52 38 | 2c 23 34 30 20 5c 69 73 |..CMP R8|,#40 \is|
|00001610| 20 58 20 3d 20 34 30 0d | 07 bc 20 42 4e 45 20 63 | X = 40.|.. BNE c|
|00001620| 6f 6c 75 6d 6e 73 74 61 | 72 74 20 5c 6c 6f 6f 70 |olumnsta|rt \loop|
|00001630| 20 69 66 20 6e 6f 74 0d | 07 c6 17 41 44 44 20 52 | if not.|...ADD R|
|00001640| 39 2c 52 39 2c 23 31 20 | 5c 59 3d 59 2b 31 0d 07 |9,R9,#1 |\Y=Y+1..|
|00001650| d0 19 43 4d 50 20 52 39 | 2c 23 32 35 20 5c 69 73 |..CMP R9|,#25 \is|
|00001660| 20 59 20 3d 20 32 35 0d | 07 da 1d 42 4e 45 20 72 | Y = 25.|...BNE r|
|00001670| 6f 77 73 74 61 72 74 20 | 5c 6c 6f 6f 70 20 69 66 |owstart |\loop if|
|00001680| 20 6e 6f 74 0d 07 e4 12 | 4d 4f 56 20 52 30 2c 23 | not....|MOV R0,#|
|00001690| 31 20 5c fb 20 31 0d 07 | ee 0d 42 4c 20 63 6f 6c |1 \. 1..|..BL col|
|000016a0| 6f 75 72 0d 07 f8 16 4d | 4f 56 20 52 30 2c 23 31 |our....M|OV R0,#1|
|000016b0| 32 38 20 5c fb 20 31 32 | 38 0d 08 02 0d 42 4c 20 |28 \. 12|8....BL |
|000016c0| 63 6f 6c 6f 75 72 0d 08 | 0c 36 41 44 52 20 52 30 |colour..|.6ADR R0|
|000016d0| 2c 77 6b 73 70 61 63 65 | 20 5c 77 6b 73 70 61 63 |,wkspace| \wkspac|
|000016e0| 65 20 63 6f 6e 74 61 69 | 6e 73 20 70 61 72 61 6d |e contai|ns param|
|000016f0| 65 74 65 72 20 61 64 64 | 72 65 73 73 0d 08 16 27 |eter add|ress...'|
|00001700| 4c 44 52 20 52 30 2c 5b | 52 30 5d 20 5c 52 30 20 |LDR R0,[|R0] \R0 |
|00001710| 3d 20 70 61 72 61 6d 65 | 74 65 72 20 61 64 64 72 |= parame|ter addr|
|00001720| 65 73 73 0d 08 20 1f 53 | 57 49 20 22 58 4f 53 5f |ess.. .S|WI "XOS_|
|00001730| 43 4c 49 22 20 5c ff 28 | 70 61 72 61 6d 65 74 65 |CLI" \.(|paramete|
|00001740| 72 29 0d 08 2a 27 4d 4f | 56 56 53 20 52 31 2c 23 |r)..*'MO|VVS R1,#|
|00001750| 26 46 46 20 5c 52 31 20 | 3d 20 32 35 35 20 66 6c |&FF \R1 |= 255 fl|
|00001760| 61 67 73 20 65 72 72 6f | 72 0d 08 34 26 4d 4f 56 |ags erro|r..4&MOV|
|00001770| 56 43 20 52 31 2c 23 30 | 20 5c 52 31 20 3d 20 30 |VC R1,#0| \R1 = 0|
|00001780| 20 66 6c 61 67 73 20 6e | 6f 20 65 72 72 6f 72 0d | flags n|o error.|
|00001790| 08 3e 43 53 54 4d 46 44 | 20 52 31 33 21 2c 7b 52 |.>CSTMFD| R13!,{R|
|000017a0| 30 2c 52 31 7d 20 5c 73 | 61 76 65 20 65 72 72 6f |0,R1} \s|ave erro|
|000017b0| 72 20 66 6c 61 67 20 61 | 6e 64 20 52 30 20 28 65 |r flag a|nd R0 (e|
|000017c0| 72 72 6f 72 20 62 6c 6f | 63 6b 20 69 66 20 61 6e |rror blo|ck if an|
|000017d0| 79 29 0d 08 48 25 42 4c | 20 72 65 73 74 6f 72 65 |y)..H%BL| restore|
|000017e0| 20 5c 72 65 73 74 6f 72 | 65 20 6d 6f 64 65 20 37 | \restor|e mode 7|
|000017f0| 20 73 63 72 65 65 6e 0d | 08 52 31 42 4c 20 72 65 | screen.|.R1BL re|
|00001800| 73 74 6f 72 65 63 68 61 | 72 20 5c 72 65 73 74 6f |storecha|r \resto|
|00001810| 72 65 20 63 68 61 72 61 | 63 74 65 72 20 64 65 66 |re chara|cter def|
|00001820| 69 6e 69 74 69 6f 6e 73 | 0d 08 5c 1e 41 44 52 20 |initions|..\.ADR |
|00001830| 52 32 2c 76 61 72 61 64 | 64 20 5c 6c 6f 61 64 20 |R2,varad|d \load |
|00001840| 76 61 72 61 64 64 0d 08 | 66 2d 4c 44 52 20 52 32 |varadd..|f-LDR R2|
|00001850| 2c 5b 52 32 5d 20 5c 67 | 65 74 20 70 6f 69 6e 74 |,[R2] \g|et point|
|00001860| 65 72 20 74 6f 20 52 4d | 41 20 77 6f 72 6b 73 70 |er to RM|A worksp|
|00001870| 61 63 65 0d 08 70 24 4d | 4f 56 20 52 30 2c 23 37 |ace..p$M|OV R0,#7|
|00001880| 20 5c 72 65 6c 65 61 73 | 65 20 52 4d 41 20 77 6f | \releas|e RMA wo|
|00001890| 72 6b 73 70 61 63 65 0d | 08 7a 14 53 57 49 20 22 |rkspace.|.z.SWI "|
|000018a0| 58 4f 53 5f 4d 6f 64 75 | 6c 65 22 0d 08 84 4c 4c |XOS_Modu|le"...LL|
|000018b0| 44 4d 56 53 46 44 20 52 | 31 33 21 2c 7b 52 31 2c |DMVSFD R|13!,{R1,|
|000018c0| 52 32 2c 50 43 7d 20 5c | 65 72 72 6f 72 20 72 65 |R2,PC} \|error re|
|000018d0| 74 75 72 6e 20 69 66 20 | 63 6f 75 6c 64 6e 27 74 |turn if |couldn't|
|000018e0| 20 72 65 6c 65 61 73 65 | 2c 52 31 2c 52 32 20 73 | release|,R1,R2 s|
|000018f0| 63 72 61 70 70 65 64 0d | 08 8e 32 4c 44 4d 46 44 |crapped.|..2LDMFD|
|00001900| 20 52 31 33 21 2c 7b 52 | 30 2c 52 31 7d 20 5c 72 | R13!,{R|0,R1} \r|
|00001910| 65 74 72 69 65 76 65 20 | 52 30 20 61 6e 64 20 65 |etrieve |R0 and e|
|00001920| 72 72 6f 72 20 66 6c 61 | 67 0d 08 98 24 43 4d 50 |rror fla|g...$CMP|
|00001930| 20 52 31 2c 23 26 46 46 | 20 5c 77 61 73 20 74 68 | R1,#&FF| \was th|
|00001940| 65 72 65 20 61 6e 20 65 | 72 72 6f 72 3f 0d 08 a2 |ere an e|rror?...|
|00001950| 44 54 45 51 45 51 50 20 | 52 31 35 2c 23 31 3c 3c |DTEQEQP |R15,#1<<|
|00001960| 32 38 20 5c 69 66 20 79 | 65 73 3c 20 73 65 74 20 |28 \if y|es< set |
|00001970| 56 20 66 6c 61 67 20 28 | 52 30 20 70 6f 69 6e 74 |V flag (|R0 point|
|00001980| 73 20 74 6f 20 65 72 72 | 6f 72 20 62 6c 6f 63 6b |s to err|or block|
|00001990| 29 0d 08 ac 21 4c 44 4d | 46 44 20 52 31 33 21 2c |)...!LDM|FD R13!,|
|000019a0| 7b 50 43 7d 20 5c 65 78 | 69 74 20 75 74 69 6c 69 |{PC} \ex|it utili|
|000019b0| 74 79 0d 08 b6 2d 2e 67 | 72 61 70 68 69 63 5f 6d |ty...-.g|raphic_m|
|000019c0| 6f 64 65 20 5c 6f 72 69 | 67 69 6e 61 6c 20 73 63 |ode \ori|ginal sc|
|000019d0| 72 65 65 6e 20 6e 6f 74 | 20 6d 6f 64 65 20 37 0d |reen not| mode 7.|
|000019e0| 08 c0 28 41 44 52 20 52 | 30 2c 77 6b 73 70 61 63 |..(ADR R|0,wkspac|
|000019f0| 65 20 5c 6c 6f 61 64 20 | 77 6b 73 70 61 63 65 20 |e \load |wkspace |
|00001a00| 61 64 64 72 65 73 73 0d | 08 ca 26 4c 44 52 20 52 |address.|..&LDR R|
|00001a10| 30 2c 5b 52 30 5d 20 5c | 67 65 74 20 70 61 72 61 |0,[R0] \|get para|
|00001a20| 6d 61 74 65 72 20 61 64 | 64 72 65 73 73 0d 08 d4 |mater ad|dress...|
|00001a30| 1f 53 57 49 20 22 58 4f | 53 5f 43 4c 49 22 20 5c |.SWI "XO|S_CLI" \|
|00001a40| ff 28 70 61 72 61 6d 65 | 74 65 72 29 0d 08 de 38 |.(parame|ter)...8|
|00001a50| 4c 44 4d 46 44 20 52 31 | 33 21 2c 7b 50 43 7d 20 |LDMFD R1|3!,{PC} |
|00001a60| 5c 65 78 69 74 20 75 74 | 69 6c 69 74 79 20 28 65 |\exit ut|ility (e|
|00001a70| 72 72 6f 72 20 66 6c 61 | 67 67 65 64 20 69 66 20 |rror fla|gged if |
|00001a80| 61 6e 79 29 0d 08 f2 18 | 2e 77 6b 73 70 61 63 65 |any)....|.wkspace|
|00001a90| 20 45 51 55 44 30 3a 45 | 51 55 44 30 0d 08 fc 48 | EQUD0:E|QUD0...H|
|00001aa0| 2e 70 61 72 61 6d 65 72 | 72 20 45 51 55 44 30 3a |.paramer|r EQUD0:|
|00001ab0| 45 51 55 53 22 4d 69 73 | 73 69 6e 67 20 70 61 72 |EQUS"Mis|sing par|
|00001ac0| 61 6d 65 74 65 72 20 3c | 48 61 72 64 43 6f 70 79 |ameter <|HardCopy|
|00001ad0| 46 58 3e 20 65 74 63 22 | 3a 45 51 55 42 30 3a 41 |FX> etc"|:EQUB0:A|
|00001ae0| 4c 49 47 4e 0d 09 06 49 | 2e 52 4d 41 65 72 72 20 |LIGN...I|.RMAerr |
|00001af0| 45 51 55 44 30 3a 45 51 | 55 53 22 4e 6f 20 72 6f |EQUD0:EQ|US"No ro|
|00001b00| 6f 6d 20 69 6e 20 52 4d | 41 22 3a 45 51 55 42 30 |om in RM|A":EQUB0|
|00001b10| 3a 41 4c 49 47 4e 20 5c | 28 65 72 72 6f 72 20 6e |:ALIGN \|(error n|
|00001b20| 6f 73 2e 20 73 65 74 20 | 74 6f 20 30 29 0d 09 10 |os. set |to 0)...|
|00001b30| 17 2e 76 61 72 61 64 64 | 20 45 51 55 44 30 3a 45 |..varadd| EQUD0:E|
|00001b40| 51 55 44 30 0d 09 1a 0e | 2e 6c 75 6d 69 6e 61 6e |QUD0....|.luminan|
|00001b50| 63 65 0d 09 24 21 45 51 | 55 44 20 26 30 36 30 34 |ce..$!EQ|UD &0604|
|00001b60| 30 32 30 30 3a 45 51 55 | 44 20 26 30 37 30 35 30 |0200:EQU|D &07050|
|00001b70| 33 30 31 0d 09 38 1d 2e | 63 6f 6c 6f 75 72 20 5c |301..8..|colour \|
|00001b80| 73 65 74 20 63 6f 6c 6f | 75 72 20 69 6e 20 52 30 |set colo|ur in R0|
|00001b90| 0d 09 42 1a 53 57 49 20 | 4f 53 5f 57 72 69 74 65 |..B.SWI |OS_Write|
|00001ba0| 49 2b 31 37 20 5c ef 20 | 31 37 0d 09 4c 1d 53 57 |I+17 \. |17..L.SW|
|00001bb0| 49 20 22 4f 53 5f 57 72 | 69 74 65 43 22 20 5c ef |I "OS_Wr|iteC" \.|
|00001bc0| 20 63 6f 6c 6f 75 72 0d | 09 56 16 4d 4f 56 20 50 | colour.|.V.MOV P|
|00001bd0| 43 2c 52 31 34 20 5c 72 | 65 74 75 72 6e 0d 09 6a |C,R14 \r|eturn..j|
|00001be0| 23 2e 64 72 61 77 20 5c | 58 2c 59 20 49 4e 20 52 |#.draw \|X,Y IN R|
|00001bf0| 38 2c 52 39 2c 20 63 68 | 61 72 20 69 6e 20 52 32 |8,R9, ch|ar in R2|
|00001c00| 0d 09 74 14 53 54 4d 46 | 44 20 52 31 33 21 2c 7b |..t.STMF|D R13!,{|
|00001c10| 52 31 34 7d 0d 09 7e 1e | 53 57 49 20 4f 53 5f 57 |R14}..~.|SWI OS_W|
|00001c20| 72 69 74 65 49 2b 33 31 | 20 5c ef 20 33 31 2c 58 |riteI+31| \. 31,X|
|00001c30| 2c 59 0d 09 88 0d 4d 4f | 56 20 52 30 2c 52 38 0d |,Y....MO|V R0,R8.|
|00001c40| 09 92 13 53 57 49 20 22 | 4f 53 5f 57 72 69 74 65 |...SWI "|OS_Write|
|00001c50| 43 22 0d 09 9c 0d 4d 4f | 56 20 52 30 2c 52 39 0d |C"....MO|V R0,R9.|
|00001c60| 09 a6 13 53 57 49 20 22 | 4f 53 5f 57 72 69 74 65 |...SWI "|OS_Write|
|00001c70| 43 22 0d 09 b0 1c 43 4d | 50 20 52 32 2c 23 33 32 |C"....CM|P R2,#32|
|00001c80| 20 5c 69 73 20 63 68 61 | 72 20 3c 20 33 32 0d 09 | \is cha|r < 32..|
|00001c90| ba 23 4d 4f 56 43 43 20 | 52 32 2c 23 33 32 20 5c |.#MOVCC |R2,#32 \|
|00001ca0| 69 66 20 79 65 73 2c 20 | 63 68 61 72 20 3d 20 33 |if yes, |char = 3|
|00001cb0| 32 0d 09 c4 17 42 43 43 | 20 73 6b 69 70 20 5c 74 |2....BCC| skip \t|
|00001cc0| 68 65 6e 20 73 6b 69 70 | 0d 09 ce 1d 43 4d 50 20 |hen skip|....CMP |
|00001cd0| 52 32 2c 23 31 32 38 20 | 5c 69 73 20 63 68 61 72 |R2,#128 |\is char|
|00001ce0| 20 31 32 38 3f 0d 09 d8 | 20 ec 51 20 52 32 2c 23 | 128?...| .Q R2,#|
|00001cf0| 33 32 20 5c 69 66 20 79 | 65 73 2c 20 63 68 61 72 |32 \if y|es, char|
|00001d00| 20 3d 20 33 32 0d 09 e2 | 17 42 45 51 20 73 6b 69 | = 32...|.BEQ ski|
|00001d10| 70 20 5c 74 68 65 6e 20 | 73 6b 69 70 0d 09 ec 28 |p \then |skip...(|
|00001d20| 54 53 54 20 52 37 2c 23 | 34 20 5c 64 6f 75 62 6c |TST R7,#|4 \doubl|
|00001d30| 65 2d 68 65 69 67 68 74 | 20 80 20 6d 6f 64 65 20 |e-height| . mode |
|00001d40| 3e 20 30 3f 0d 09 f6 48 | 4d 4f 56 4e 45 20 52 30 |> 0?...H|MOVNE R0|
|00001d50| 2c 52 32 20 5c 69 66 20 | 79 65 73 2c 20 63 68 61 |,R2 \if |yes, cha|
|00001d60| 72 20 74 6f 20 52 30 20 | 74 68 65 6e 20 73 75 62 |r to R0 |then sub|
|00001d70| 72 6f 75 74 69 6e 65 20 | 27 64 6f 75 62 6c 65 27 |routine |'double'|
|00001d80| 20 74 68 65 6e 20 72 65 | 74 75 72 6e 0d 0a 00 0f | then re|turn....|
|00001d90| 42 4c 4e 45 20 64 6f 75 | 62 6c 65 0d 0a 0a 15 4c |BLNE dou|ble....L|
|00001da0| 44 4d 4e 45 46 44 20 52 | 31 33 21 2c 7b 50 43 7d |DMNEFD R|13!,{PC}|
|00001db0| 0d 0a 14 20 43 4d 50 20 | 52 35 2c 23 35 20 5c 64 |... CMP |R5,#5 \d|
|00001dc0| 6f 75 62 6c 65 5f 72 6f | 77 3d 6c 6f 77 65 72 3f |ouble_ro|w=lower?|
|00001dd0| 0d 0a 1e 20 ec 51 20 52 | 32 2c 23 33 32 20 5c 69 |... .Q R|2,#32 \i|
|00001de0| 66 20 79 65 73 2c 20 63 | 68 61 72 20 3d 20 33 32 |f yes, c|har = 32|
|00001df0| 0d 0a 28 1d 43 4d 50 20 | 52 32 2c 23 31 32 37 20 |..(.CMP |R2,#127 |
|00001e00| 5c 69 73 20 63 68 61 72 | 20 31 32 37 3f 0d 0a 32 |\is char| 127?..2|
|00001e10| 3d 42 4c 45 51 20 62 6c | 6f 64 67 65 20 5c 69 66 |=BLEQ bl|odge \if|
|00001e20| 20 79 65 73 2c 20 74 68 | 65 6e 20 73 75 62 72 6f | yes, th|en subro|
|00001e30| 75 74 69 6e 65 20 27 62 | 6c 6f 64 67 65 27 20 74 |utine 'b|lodge' t|
|00001e40| 68 65 6e 20 72 65 74 75 | 72 6e 0d 0a 3c 15 4c 44 |hen retu|rn..<.LD|
|00001e50| 4d 45 51 46 44 20 52 31 | 33 21 2c 7b 50 43 7d 0d |MEQFD R1|3!,{PC}.|
|00001e60| 0a 46 17 2e 73 6b 69 70 | 20 5c 73 6b 69 70 20 72 |.F..skip| \skip r|
|00001e70| 65 65 6e 74 72 79 0d 0a | 50 15 4d 4f 56 20 52 30 |eentry..|P.MOV R0|
|00001e80| 2c 52 32 20 5c ef 20 63 | 68 61 72 0d 0a 5a 13 53 |,R2 \. c|har..Z.S|
|00001e90| 57 49 20 22 4f 53 5f 57 | 72 69 74 65 43 22 0d 0a |WI "OS_W|riteC"..|
|00001ea0| 64 1b 4c 44 4d 46 44 20 | 52 31 33 21 2c 7b 50 43 |d.LDMFD |R13!,{PC|
|00001eb0| 7d 20 5c 72 65 74 75 72 | 6e 0d 0a 78 25 2e 64 65 |} \retur|n..x%.de|
|00001ec0| 66 63 68 61 72 73 20 5c | 72 65 64 65 66 69 6e 65 |fchars \|redefine|
|00001ed0| 20 63 68 61 72 61 63 74 | 65 72 20 73 65 74 0d 0a | charact|er set..|
|00001ee0| 82 14 53 54 4d 46 44 20 | 52 31 33 21 2c 7b 52 31 |..STMFD |R13!,{R1|
|00001ef0| 34 7d 0d 0a 8c 28 4d 4f | 56 20 52 31 2c 23 31 32 |4}...(MO|V R1,#12|
|00001f00| 38 2b 33 32 20 5c 6e 6f | 20 74 6f 20 72 65 64 65 |8+32 \no| to rede|
|00001f10| 66 69 6e 65 20 69 6e 20 | 52 31 0d 0a 96 0c 2e 64 |fine in |R1.....d|
|00001f20| 65 66 6c 6f 6f 70 0d 0a | a0 2b 53 55 42 20 52 30 |efloop..|.+SUB R0|
|00001f30| 2c 52 31 2c 23 31 32 38 | 20 5c 6e 6f 20 66 6f 72 |,R1,#128| \no for|
|00001f40| 20 64 65 66 69 6e 69 74 | 69 6f 6e 20 69 6e 20 52 | definit|ion in R|
|00001f50| 30 0d 0a aa 25 42 4c 20 | 64 65 66 20 5c 31 32 38 |0...%BL |def \128|
|00001f60| 2b 33 32 2e 2e 31 32 38 | 2b 36 33 20 2d 2d 3e 20 |+32..128|+63 --> |
|00001f70| 33 32 2e 2e 36 33 0d 0a | b4 11 41 44 44 20 52 31 |32..63..|..ADD R1|
|00001f80| 2c 52 31 2c 23 36 34 0d | 0a be 11 41 44 44 20 52 |,R1,#64.|...ADD R|
|00001f90| 30 2c 52 30 2c 23 36 34 | 0d 0a c8 27 42 4c 20 64 |0,R0,#64|...'BL d|
|00001fa0| 65 66 20 5c 31 32 38 2b | 39 36 2e 2e 31 32 38 2b |ef \128+|96..128+|
|00001fb0| 31 32 37 20 2d 2d 3e 20 | 39 36 2e 2e 31 32 37 0d |127 --> |96..127.|
|00001fc0| 0a d2 11 53 55 42 20 52 | 31 2c 52 31 2c 23 36 33 |...SUB R|1,R1,#63|
|00001fd0| 0d 0a dc 12 43 4d 50 20 | 52 31 2c 23 31 32 38 2b |....CMP |R1,#128+|
|00001fe0| 36 34 0d 0a e6 0f 42 4e | 45 20 64 65 66 6c 6f 6f |64....BN|E defloo|
|00001ff0| 70 0d 0a f0 30 42 4c 20 | 6e 6f 6e 5f 73 74 61 6e |p...0BL |non_stan|
|00002000| 64 61 72 64 20 5c 72 65 | 64 65 66 69 6e 65 20 6e |dard \re|define n|
|00002010| 6f 6e 5f 73 74 61 6e 64 | 61 72 64 20 63 68 61 72 |on_stand|ard char|
|00002020| 73 0d 0a fa 13 4c 44 4d | 46 44 20 52 31 33 21 2c |s....LDM|FD R13!,|
|00002030| 7b 50 43 7d 0d 0b 0e 05 | 5c 0d 0b 18 3a 5c 61 73 |{PC}....|\...:\as|
|00002040| 73 75 6d 69 6e 67 20 77 | 65 20 68 61 76 65 20 61 |suming w|e have a|
|00002050| 20 67 72 61 70 68 69 63 | 73 20 63 68 61 72 61 63 | graphic|s charac|
|00002060| 74 65 72 2c 20 77 65 20 | 63 61 6e 20 61 6e 61 6c |ter, we |can anal|
|00002070| 79 73 65 0d 0b 22 40 5c | 62 69 74 73 20 73 65 74 |yse.."@\|bits set|
|00002080| 20 66 6f 72 20 65 61 63 | 68 20 70 69 78 65 6c 20 | for eac|h pixel |
|00002090| 6f 66 20 6d 6f 64 65 20 | 37 20 67 72 61 70 68 69 |of mode |7 graphi|
|000020a0| 63 73 20 63 68 61 72 20 | 61 73 20 66 6f 6c 6c 6f |cs char |as follo|
|000020b0| 77 73 3b 0d 0b 2c 34 5c | 20 20 20 20 20 20 20 20 |ws;..,4\| |
|000020c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000020d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 62 | | b|
|000020e0| 69 74 73 20 73 65 74 0d | 0b 36 34 5c 74 6f 70 20 |its set.|.64\top |
|000020f0| 27 70 69 78 65 6c 27 20 | 72 6f 77 20 6f 66 20 63 |'pixel' |row of c|
|00002100| 68 61 72 61 63 74 65 72 | 20 20 20 20 20 20 20 20 |haracter| |
|00002110| 20 20 20 30 20 20 20 20 | 20 20 31 0d 0b 40 34 5c | 0 | 1..@4\|
|00002120| 6d 69 64 64 6c 65 20 27 | 70 69 78 65 6c 27 20 72 |middle '|pixel' r|
|00002130| 6f 77 20 6f 66 20 63 68 | 61 72 61 63 74 65 72 20 |ow of ch|aracter |
|00002140| 20 20 20 20 20 20 20 32 | 20 20 20 20 20 20 33 0d | 2| 3.|
|00002150| 0b 4a 35 5c 62 6f 74 74 | 6f 6d 20 27 70 69 78 65 |.J5\bott|om 'pixe|
|00002160| 6c 27 20 72 6f 77 20 6f | 66 20 63 68 61 72 61 63 |l' row o|f charac|
|00002170| 74 65 72 20 20 20 20 20 | 20 20 34 26 35 20 20 20 |ter | 4&5 |
|00002180| 20 35 26 36 0d 0b 54 48 | 5c 74 68 65 20 6e 65 77 | 5&6..TH|\the new|
|00002190| 20 64 65 66 69 6e 65 64 | 20 63 68 61 72 61 63 74 | defined| charact|
|000021a0| 65 72 20 75 73 65 73 20 | 74 68 72 65 65 20 72 6f |er uses |three ro|
|000021b0| 77 73 20 6f 66 20 70 69 | 78 65 6c 73 20 66 6f 72 |ws of pi|xels for|
|000021c0| 20 74 68 65 20 74 6f 70 | 20 72 6f 77 0d 0b 5e 2e | the top| row..^.|
|000021d0| 5c 74 77 6f 20 72 6f 77 | 73 20 6f 66 20 70 69 78 |\two row|s of pix|
|000021e0| 65 6c 73 20 66 6f 72 20 | 74 68 65 20 6d 69 64 64 |els for |the midd|
|000021f0| 6c 65 20 72 6f 77 20 61 | 6e 64 0d 0b 68 2c 5c 74 |le row a|nd..h,\t|
|00002200| 68 72 65 65 20 72 6f 77 | 73 20 6f 66 20 70 69 78 |hree row|s of pix|
|00002210| 65 6c 73 20 66 6f 72 20 | 74 68 65 20 62 6f 74 74 |els for |the bott|
|00002220| 6f 6d 20 72 6f 77 0d 0b | 72 05 5c 0d 0b 7c 37 2e |om row..|r.\..|7.|
|00002230| 64 65 66 20 5c 63 68 61 | 72 20 69 6e 20 52 30 2c |def \cha|r in R0,|
|00002240| 20 63 6f 64 65 20 69 6e | 20 52 31 2c 20 52 34 3d | code in| R1, R4=|
|00002250| 6c 65 66 74 20 41 4c 4c | 20 52 45 47 53 20 a8 41 |left ALL| REGS .A|
|00002260| 43 54 0d 0b 86 1a 53 54 | 4d 46 44 20 52 31 33 21 |CT....ST|MFD R13!|
|00002270| 2c 7b 52 30 2d 52 36 2c | 52 31 34 7d 0d 0b 90 29 |,{R0-R6,|R14}...)|
|00002280| 4d 4f 56 20 52 34 2c 23 | 26 46 30 20 5c 6d 61 73 |MOV R4,#|&F0 \mas|
|00002290| 6b 20 66 6f 72 20 6c 65 | 66 74 20 68 61 6e 64 20 |k for le|ft hand |
|000022a0| 70 69 78 65 6c 0d 0b 9a | 34 41 44 52 20 52 32 2c |pixel...|4ADR R2,|
|000022b0| 63 20 5c 61 64 64 72 65 | 73 73 20 6f 66 20 63 68 |c \addre|ss of ch|
|000022c0| 61 72 61 63 74 65 72 20 | 64 65 66 69 6e 69 74 69 |aracter |definiti|
|000022d0| 6f 6e 20 62 75 66 66 65 | 72 0d 0b a4 25 4d 4f 56 |on buffe|r...%MOV|
|000022e0| 20 52 36 2c 23 30 20 5c | 69 6e 69 74 69 61 6c 69 | R6,#0 \|initiali|
|000022f0| 73 65 20 62 75 66 66 65 | 72 20 74 6f 20 30 0d 0b |se buffe|r to 0..|
|00002300| ae 1e 53 54 52 20 52 36 | 2c 5b 52 32 5d 20 5c 66 |..STR R6|,[R2] \f|
|00002310| 69 72 73 74 20 34 20 62 | 79 74 65 73 0d 0b b8 25 |irst 4 b|ytes...%|
|00002320| 53 54 52 20 52 36 2c 5b | 52 32 2c 23 34 5d 20 5c |STR R6,[|R2,#4] \|
|00002330| 73 65 63 6f 6e 64 20 66 | 6f 75 72 20 62 79 74 65 |second f|our byte|
|00002340| 73 0d 0b c2 24 54 53 54 | 20 52 30 2c 23 31 20 5c |s...$TST| R0,#1 \|
|00002350| 69 73 20 62 69 74 20 30 | 20 6f 66 20 63 68 61 72 |is bit 0| of char|
|00002360| 20 3d 20 31 3f 0d 0b cc | 3e 53 54 52 4e 45 42 20 | = 1?...|>STRNEB |
|00002370| 52 34 2c 5b 52 32 5d 20 | 5c 69 66 20 73 6f 20 73 |R4,[R2] |\if so s|
|00002380| 65 74 20 66 69 72 73 74 | 20 74 68 72 65 65 20 62 |et first| three b|
|00002390| 79 74 65 73 20 6f 66 20 | 64 65 66 6e 20 74 6f 20 |ytes of |defn to |
|000023a0| 26 46 30 0d 0b d6 15 53 | 54 52 4e 45 42 20 52 34 |&F0....S|TRNEB R4|
|000023b0| 2c 5b 52 32 2c 23 31 5d | 0d 0b e0 15 53 54 52 4e |,[R2,#1]|....STRN|
|000023c0| 45 42 20 52 34 2c 5b 52 | 32 2c 23 32 5d 0d 0b ea |EB R4,[R|2,#2]...|
|000023d0| 24 54 53 54 20 52 30 2c | 23 32 20 5c 69 73 20 62 |$TST R0,|#2 \is b|
|000023e0| 69 74 20 31 20 6f 66 20 | 63 68 61 72 20 3d 20 31 |it 1 of |char = 1|
|000023f0| 3f 0d 0b f4 39 4c 44 52 | 4e 45 20 52 36 2c 5b 52 |?...9LDR|NE R6,[R|
|00002400| 32 5d 20 5c 69 66 20 73 | 6f 20 72 65 74 72 69 65 |2] \if s|o retrie|
|00002410| 76 65 20 66 69 72 73 74 | 20 34 20 62 79 74 65 73 |ve first| 4 bytes|
|00002420| 20 74 6f 20 52 36 20 61 | 6e 64 0d 0b fe 3e 84 52 | to R6 a|nd...>.R|
|00002430| 4e 45 20 52 36 2c 52 36 | 2c 23 26 30 30 30 30 30 |NE R6,R6|,#&00000|
|00002440| 46 20 5c 73 65 74 72 69 | 67 68 74 20 68 61 6e 64 |F \setri|ght hand|
|00002450| 20 6e 69 62 62 6c 65 20 | 6f 66 20 66 69 72 73 74 | nibble |of first|
|00002460| 20 33 20 62 79 74 65 73 | 0d 0c 08 1e 84 52 4e 45 | 3 bytes|.....RNE|
|00002470| 20 52 36 2c 52 36 2c 23 | 26 30 30 30 46 30 30 20 | R6,R6,#|&000F00 |
|00002480| 5c 74 6f 20 26 46 0d 0c | 12 17 84 52 4e 45 20 52 |\to &F..|...RNE R|
|00002490| 36 2c 52 36 2c 23 26 30 | 46 30 30 30 30 0d 0c 1c |6,R6,#&0|F0000...|
|000024a0| 36 53 54 52 4e 45 20 52 | 36 2c 5b 52 32 5d 20 5c |6STRNE R|6,[R2] \|
|000024b0| 73 74 6f 72 65 20 62 61 | 63 6b 20 6d 6f 64 69 66 |store ba|ck modif|
|000024c0| 69 65 64 20 62 79 74 65 | 73 20 74 6f 20 62 75 66 |ied byte|s to buf|
|000024d0| 66 65 72 0d 0c 26 24 54 | 53 54 20 52 30 2c 23 34 |fer..&$T|ST R0,#4|
|000024e0| 20 5c 69 73 20 62 69 74 | 20 32 20 6f 66 20 63 68 | \is bit| 2 of ch|
|000024f0| 61 72 20 3d 20 31 3f 0d | 0c 30 41 53 54 52 4e 45 |ar = 1?.|.0ASTRNE|
|00002500| 42 20 52 34 2c 5b 52 32 | 2c 23 33 5d 20 5c 69 66 |B R4,[R2|,#3] \if|
|00002510| 20 73 6f 20 73 65 74 20 | 34 74 68 20 61 6e 64 20 | so set |4th and |
|00002520| 35 74 68 20 62 79 74 65 | 73 20 6f 66 20 64 65 66 |5th byte|s of def|
|00002530| 6e 20 74 6f 20 26 46 30 | 0d 0c 3a 15 53 54 52 4e |n to &F0|..:.STRN|
|00002540| 45 42 20 52 34 2c 5b 52 | 32 2c 23 34 5d 0d 0c 44 |EB R4,[R|2,#4]..D|
|00002550| 24 54 53 54 20 52 30 2c | 23 38 20 5c 69 73 20 62 |$TST R0,|#8 \is b|
|00002560| 69 74 20 33 20 6f 66 20 | 63 68 61 72 20 3d 20 31 |it 3 of |char = 1|
|00002570| 3f 0d 0c 4e 3c 4c 44 52 | 4e 45 42 20 52 36 2c 5b |?..N<LDR|NEB R6,[|
|00002580| 52 32 2c 23 33 5d 20 5c | 69 66 20 73 6f 20 72 65 |R2,#3] \|if so re|
|00002590| 74 72 69 65 76 65 20 34 | 74 68 20 62 79 74 65 20 |trieve 4|th byte |
|000025a0| 66 6f 20 64 65 66 69 6e | 69 74 69 6f 6e 0d 0c 58 |fo defin|ition..X|
|000025b0| 2f 84 52 4e 45 20 52 36 | 2c 52 36 2c 23 26 46 20 |/.RNE R6|,R6,#&F |
|000025c0| 5c 73 65 74 20 72 69 67 | 68 74 20 68 61 6e 64 20 |\set rig|ht hand |
|000025d0| 6e 69 62 62 6c 65 20 74 | 6f 20 26 46 0d 0c 62 23 |nibble t|o &F..b#|
|000025e0| 53 54 52 4e 45 42 20 52 | 36 2c 5b 52 32 2c 23 33 |STRNEB R|6,[R2,#3|
|000025f0| 5d 20 5c 72 65 73 74 6f | 72 65 20 62 79 74 65 0d |] \resto|re byte.|
|00002600| 0c 6c 2b 4c 44 52 4e 45 | 42 20 52 36 2c 5b 52 32 |.l+LDRNE|B R6,[R2|
|00002610| 2c 23 34 5d 20 5c 72 65 | 70 65 61 74 20 77 69 74 |,#4] \re|peat wit|
|00002620| 68 20 35 74 68 20 62 79 | 74 65 0d 0c 76 12 84 52 |h 5th by|te..v..R|
|00002630| 4e 45 20 52 36 2c 52 36 | 2c 23 26 46 0d 0c 80 15 |NE R6,R6|,#&F....|
|00002640| 53 54 52 4e 45 42 20 52 | 36 2c 5b 52 32 2c 23 34 |STRNEB R|6,[R2,#4|
|00002650| 5d 0d 0c 8a 38 42 49 43 | 53 20 52 36 2c 52 30 2c |]...8BIC|S R6,R0,|
|00002660| 23 25 31 31 30 30 31 31 | 31 31 20 5c 6d 61 73 6b |#%110011|11 \mask|
|00002670| 20 6f 66 66 20 62 69 74 | 73 20 34 20 61 6e 64 20 | off bit|s 4 and |
|00002680| 35 20 6f 66 20 63 68 61 | 72 0d 0c 94 31 43 4d 50 |5 of cha|r...1CMP|
|00002690| 20 52 36 2c 23 25 30 30 | 31 31 30 30 30 30 20 5c | R6,#%00|110000 \|
|000026a0| 61 72 65 20 62 69 74 73 | 20 34 20 61 6e 64 20 35 |are bits| 4 and 5|
|000026b0| 20 62 6f 74 68 20 3d 20 | 31 3f 0d 0c 9e 46 53 54 | both = |1?...FST|
|000026c0| 52 45 51 42 20 52 34 2c | 5b 52 32 2c 23 35 5d 20 |REQB R4,|[R2,#5] |
|000026d0| 5c 69 66 20 73 6f 2c 20 | 73 65 74 20 36 74 68 2c |\if so, |set 6th,|
|000026e0| 20 37 74 68 20 61 6e 64 | 20 38 74 68 20 62 79 74 | 7th and| 8th byt|
|000026f0| 65 73 20 6f 66 20 64 65 | 66 6e 20 b8 20 26 46 30 |es of de|fn . &F0|
|00002700| 0d 0c a8 15 53 54 52 45 | 51 42 20 52 34 2c 5b 52 |....STRE|QB R4,[R|
|00002710| 32 2c 23 36 5d 0d 0c b2 | 15 53 54 52 45 51 42 20 |2,#6]...|.STREQB |
|00002720| 52 34 2c 5b 52 32 2c 23 | 37 5d 0d 0c bc 38 42 49 |R4,[R2,#|7]...8BI|
|00002730| 43 53 20 52 36 2c 52 30 | 2c 23 25 31 30 30 31 31 |CS R6,R0|,#%10011|
|00002740| 31 31 31 20 5c 6d 61 73 | 6b 20 6f 66 66 20 62 69 |111 \mas|k off bi|
|00002750| 74 73 20 36 20 61 6e 64 | 20 37 20 6f 66 20 63 68 |ts 6 and| 7 of ch|
|00002760| 61 72 0d 0c c6 30 43 4d | 50 20 52 36 2c 23 25 30 |ar...0CM|P R6,#%0|
|00002770| 31 31 30 30 30 30 30 20 | 5c 61 72 65 20 62 69 74 |1100000 |\are bit|
|00002780| 73 20 36 20 61 6e 64 20 | 37 20 62 6f 74 68 20 3d |s 6 and |7 both =|
|00002790| 31 3f 0d 0c d0 3d 4c 44 | 52 45 51 20 52 36 2c 5b |1?...=LD|REQ R6,[|
|000027a0| 52 32 2c 23 34 5d 20 5c | 69 66 20 73 6f 20 72 65 |R2,#4] \|if so re|
|000027b0| 74 72 69 65 76 65 20 35 | 74 68 20 74 6f 20 38 74 |trieve 5|th to 8t|
|000027c0| 68 20 62 79 74 65 73 20 | 6f 66 20 64 65 66 6e 0d |h bytes |of defn.|
|000027d0| 0c da 42 84 52 45 51 20 | 52 36 2c 52 36 2c 23 26 |..B.REQ |R6,R6,#&|
|000027e0| 30 30 30 30 46 30 30 20 | 5c 73 65 74 20 72 69 67 |0000F00 |\set rig|
|000027f0| 68 74 20 68 61 6e 64 20 | 6e 69 62 62 6c 65 20 6f |ht hand |nibble o|
|00002800| 66 20 62 79 74 65 73 20 | 36 2d 38 20 74 6f 20 26 |f bytes |6-8 to &|
|00002810| 46 0d 0c e4 18 84 52 45 | 51 20 52 36 2c 52 36 2c |F.....RE|Q R6,R6,|
|00002820| 23 26 30 30 46 30 30 30 | 30 0d 0c ee 18 84 52 45 |#&00F000|0.....RE|
|00002830| 51 20 52 36 2c 52 36 2c | 23 26 46 30 30 30 30 30 |Q R6,R6,|#&F00000|
|00002840| 30 0d 0c f8 2c 53 54 52 | 45 51 20 52 36 2c 5b 52 |0...,STR|EQ R6,[R|
|00002850| 32 2c 23 34 5d 20 5c 72 | 65 73 74 6f 72 65 20 6d |2,#4] \r|estore m|
|00002860| 6f 64 69 66 69 65 64 20 | 62 79 74 65 73 0d 0d 02 |odified |bytes...|
|00002870| 34 53 57 49 20 4f 53 5f | 57 72 69 74 65 49 2b 32 |4SWI OS_|WriteI+2|
|00002880| 33 20 5c 6e 6f 77 20 64 | 65 66 69 6e 65 20 6e 65 |3 \now d|efine ne|
|00002890| 77 20 63 68 61 72 61 63 | 74 65 72 3b 20 ef 20 32 |w charac|ter; . 2|
|000028a0| 33 0d 0d 0c 37 53 55 42 | 20 52 30 2c 52 31 2c 23 |3...7SUB| R0,R1,#|
|000028b0| 33 32 20 5c ef 20 63 6f | 64 65 2d 33 32 20 28 63 |32 \. co|de-32 (c|
|000028c0| 6f 6e 74 69 67 75 6f 75 | 73 20 67 72 61 70 68 69 |ontiguou|s graphi|
|000028d0| 63 73 20 63 68 61 72 29 | 0d 0d 16 13 53 57 49 20 |cs char)|....SWI |
|000028e0| 22 4f 53 5f 57 72 69 74 | 65 43 22 0d 0d 20 1e 4d |"OS_Writ|eC".. .M|
|000028f0| 4f 56 20 52 35 2c 52 31 | 20 5c 73 61 76 65 20 63 |OV R5,R1| \save c|
|00002900| 6f 64 65 20 69 6e 20 52 | 35 0d 0d 2a 20 4d 4f 56 |ode in R|5..* MOV|
|00002910| 20 52 30 2c 52 32 20 5c | 63 6f 64 65 20 62 75 66 | R0,R2 \|code buf|
|00002920| 66 65 72 20 74 6f 20 52 | 30 0d 0d 34 1f 4d 4f 56 |fer to R|0..4.MOV|
|00002930| 20 52 31 2c 23 38 20 5c | 38 20 62 79 74 65 73 20 | R1,#8 \|8 bytes |
|00002940| 74 6f 20 77 72 69 74 65 | 0d 0d 3e 22 53 57 49 20 |to write|..>"SWI |
|00002950| 22 4f 53 5f 57 72 69 74 | 65 4e 22 20 5c ef 20 74 |"OS_Writ|eN" \. t|
|00002960| 68 65 20 38 20 62 79 74 | 65 73 0d 0d 48 3e 4d 4f |he 8 byt|es..H>MO|
|00002970| 56 20 52 30 2c 23 26 37 | 37 20 5c 6d 61 6b 65 20 |V R0,#&7|7 \make |
|00002980| 75 70 20 76 65 72 74 69 | 63 61 6c 20 6d 61 73 6b |up verti|cal mask|
|00002990| 20 66 6f 72 20 73 65 70 | 61 72 61 74 65 64 20 63 | for sep|arated c|
|000029a0| 68 61 72 61 63 74 65 72 | 0d 0d 52 13 84 52 20 52 |haracter|..R..R R|
|000029b0| 30 2c 52 30 2c 23 26 37 | 37 30 30 0d 0d 5c 17 84 |0,R0,#&7|700..\..|
|000029c0| 52 20 52 30 2c 52 30 2c | 23 26 37 37 30 30 30 30 |R R0,R0,|#&770000|
|000029d0| 30 30 0d 0d 66 2d 4d 4f | 56 20 52 34 2c 52 30 2c |00..f-MO|V R4,R0,|
|000029e0| 41 53 4c 23 38 20 5c 6f | 74 68 65 72 20 68 61 6c |ASL#8 \o|ther hal|
|000029f0| 66 20 6f 66 20 6d 61 73 | 6b 20 74 6f 20 52 34 0d |f of mas|k to R4.|
|00002a00| 0d 70 30 4c 44 52 20 52 | 36 2c 5b 52 32 5d 20 5c |.p0LDR R|6,[R2] \|
|00002a10| 67 65 74 20 66 69 72 73 | 74 20 34 20 62 79 74 65 |get firs|t 4 byte|
|00002a20| 73 20 6f 66 20 64 65 66 | 69 6e 69 74 69 6f 6e 0d |s of def|inition.|
|00002a30| 0d 7a 21 80 20 52 30 2c | 52 30 2c 52 36 20 5c 80 |.z!. R0,|R0,R6 \.|
|00002a40| 20 73 65 70 61 72 61 74 | 69 6f 6e 20 6d 61 73 6b | separat|ion mask|
|00002a50| 0d 0d 84 2a 53 54 52 20 | 52 30 2c 5b 52 32 5d 20 |...*STR |R0,[R2] |
|00002a60| 5c 73 74 6f 72 65 20 62 | 61 63 6b 20 6d 6f 64 69 |\store b|ack modi|
|00002a70| 66 69 65 64 20 62 79 74 | 65 73 0d 0d 8e 2d 4c 44 |fied byt|es...-LD|
|00002a80| 52 20 52 36 2c 5b 52 32 | 2c 23 34 5d 20 5c 72 65 |R R6,[R2|,#4] \re|
|00002a90| 70 65 61 74 20 66 6f 72 | 20 73 65 63 6f 6e 64 20 |peat for| second |
|00002aa0| 34 20 62 79 74 65 73 0d | 0d 98 1c 80 20 52 30 2c |4 bytes.|.... R0,|
|00002ab0| 52 34 2c 52 36 20 5c 80 | 20 6d 61 73 6b 20 69 6e |R4,R6 \.| mask in|
|00002ac0| 20 52 34 0d 0d a2 24 53 | 54 52 20 52 30 2c 5b 52 | R4...$S|TR R0,[R|
|00002ad0| 32 2c 23 34 5d 20 5c 73 | 74 6f 72 65 20 62 61 63 |2,#4] \s|tore bac|
|00002ae0| 6b 20 62 79 74 65 73 0d | 0d ac 35 53 57 49 20 4f |k bytes.|..5SWI O|
|00002af0| 53 5f 57 72 69 74 65 49 | 2b 32 33 20 5c 6e 6f 77 |S_WriteI|+23 \now|
|00002b00| 20 64 65 66 69 6e 65 20 | 73 65 70 61 72 61 74 65 | define |separate|
|00002b10| 64 20 63 68 61 72 3b 20 | ef 20 32 33 0d 0d b6 21 |d char; |. 23...!|
|00002b20| 4d 4f 56 20 52 30 2c 52 | 35 20 5c 67 65 74 20 62 |MOV R0,R|5 \get b|
|00002b30| 61 63 6b 20 63 68 61 72 | 20 63 6f 64 65 0d 0d c0 |ack char| code...|
|00002b40| 1b 53 57 49 20 22 4f 53 | 5f 57 72 69 74 65 43 22 |.SWI "OS|_WriteC"|
|00002b50| 20 5c ef 20 63 6f 64 65 | 0d 0d ca 20 4d 4f 56 20 | \. code|... MOV |
|00002b60| 52 30 2c 52 32 20 5c 63 | 68 61 72 20 62 75 66 66 |R0,R2 \c|har buff|
|00002b70| 65 72 20 74 6f 20 52 30 | 0d 0d d4 1f 4d 4f 56 20 |er to R0|....MOV |
|00002b80| 52 31 2c 23 38 20 5c 38 | 20 62 79 74 65 73 20 74 |R1,#8 \8| bytes t|
|00002b90| 6f 20 77 72 69 74 65 0d | 0d de 22 53 57 49 20 22 |o write.|.."SWI "|
|00002ba0| 4f 53 5f 57 72 69 74 65 | 4e 22 20 5c ef 20 74 68 |OS_Write|N" \. th|
|00002bb0| 65 20 38 20 62 79 74 65 | 73 0d 0d e8 30 4c 44 4d |e 8 byte|s...0LDM|
|00002bc0| 46 44 20 52 31 33 21 2c | 7b 52 30 2d 52 36 2c 50 |FD R13!,|{R0-R6,P|
|00002bd0| 43 7d 20 5c 72 65 73 74 | 6f 72 65 20 72 65 67 73 |C} \rest|ore regs|
|00002be0| 20 61 6e 64 20 65 78 69 | 74 0d 0d fc 12 2e 63 20 | and exi|t.....c |
|00002bf0| 45 51 55 44 30 3a 45 51 | 55 44 30 0d 0e 10 11 2e |EQUD0:EQ|UD0.....|
|00002c00| 6e 6f 6e 5f 73 74 61 6e | 64 61 72 64 0d 0e 1a 31 |non_stan|dard...1|
|00002c10| 53 54 4d 46 44 20 52 31 | 33 21 2c 7b 52 33 2c 52 |STMFD R1|3!,{R3,R|
|00002c20| 31 34 7d 20 5c 73 61 76 | 65 20 52 33 20 26 20 72 |14} \sav|e R3 & r|
|00002c30| 65 74 75 72 6e 20 61 64 | 64 72 65 73 73 0d 0e 24 |eturn ad|dress..$|
|00002c40| 34 41 44 52 20 52 31 2c | 6e 73 64 61 74 61 20 5c |4ADR R1,|nsdata \|
|00002c50| 52 31 20 70 6f 69 6e 74 | 73 20 74 6f 20 63 68 61 |R1 point|s to cha|
|00002c60| 72 20 64 65 66 6e 20 64 | 61 74 61 20 73 74 61 72 |r defn d|ata star|
|00002c70| 74 0d 0e 2e 36 41 44 52 | 20 52 33 2c 6e 73 64 61 |t...6ADR| R3,nsda|
|00002c80| 74 61 65 6e 64 20 5c 52 | 32 20 20 70 6f 69 6e 74 |taend \R|2 point|
|00002c90| 73 20 74 6f 20 63 68 61 | 72 20 64 65 66 6e 20 64 |s to cha|r defn d|
|00002ca0| 61 74 61 20 65 6e 64 0d | 0e 38 0b 2e 6e 73 6c 6f |ata end.|.8..nslo|
|00002cb0| 6f 70 0d 0e 42 33 4c 44 | 52 42 20 52 30 2c 5b 52 |op..B3LD|RB R0,[R|
|00002cc0| 31 5d 2c 23 31 20 5c 67 | 65 74 20 6e 65 78 74 20 |1],#1 \g|et next |
|00002cd0| 64 61 74 61 20 62 79 74 | 65 20 74 68 65 6e 20 69 |data byt|e then i|
|00002ce0| 6e 63 20 52 31 0d 0e 4c | 20 53 57 49 20 22 4f 53 |nc R1..L| SWI "OS|
|00002cf0| 5f 57 72 69 74 65 43 22 | 20 5c ef 20 64 61 74 61 |_WriteC"| \. data|
|00002d00| 20 62 79 74 65 0d 0e 56 | 19 43 4d 50 20 52 31 2c | byte..V|.CMP R1,|
|00002d10| 52 33 20 5c 6c 61 73 74 | 20 62 79 74 65 3f 0d 0e |R3 \last| byte?..|
|00002d20| 60 1b 42 4e 45 20 6e 73 | 6c 6f 6f 70 20 5c 6c 6f |`.BNE ns|loop \lo|
|00002d30| 6f 70 20 69 66 20 6e 6f | 74 0d 0e 6a 29 4c 44 4d |op if no|t..j)LDM|
|00002d40| 46 44 20 52 31 33 21 2c | 7b 52 33 2c 50 43 7d 20 |FD R13!,|{R3,PC} |
|00002d50| 5c 72 65 73 74 6f 72 65 | 20 52 33 20 26 20 65 78 |\restore| R3 & ex|
|00002d60| 69 74 0d 0e 7e 0b 2e 6e | 73 64 61 74 61 0d 0e 88 |it..~..n|sdata...|
|00002d70| 3b 45 51 55 57 26 32 33 | 31 37 3a 45 51 55 44 26 |;EQUW&23|17:EQUD&|
|00002d80| 37 43 33 30 33 36 31 43 | 3a 45 51 55 44 26 30 30 |7C30361C|:EQUD&00|
|00002d90| 37 45 33 30 33 30 20 5c | 20 50 6f 75 6e 64 20 73 |7E3030 \| Pound s|
|00002da0| 69 67 6e 20 5b 33 35 5d | 0d 0e 92 3b 45 51 55 57 |ign [35]|...;EQUW|
|00002db0| 26 32 37 31 37 3a 45 51 | 55 44 26 30 30 31 38 31 |&2717:EQ|UD&00181|
|00002dc0| 38 31 38 3a 45 51 55 44 | 26 30 20 20 20 20 20 20 |818:EQUD|&0 |
|00002dd0| 20 20 5c 20 74 69 63 6b | 20 20 20 20 20 20 20 5b | \ tick| [|
|00002de0| 33 39 5d 0d 0e 9c 3b 45 | 51 55 57 26 32 41 31 37 |39]...;E|QUW&2A17|
|00002df0| 3a 45 51 55 44 26 31 43 | 32 41 30 38 30 30 3a 45 |:EQUD&1C|2A0800:E|
|00002e00| 51 55 44 26 30 30 30 38 | 32 41 31 43 20 5c 20 73 |QUD&0008|2A1C \ s|
|00002e10| 74 61 72 20 20 20 20 20 | 20 20 5b 34 32 5d 0d 0e |tar | [42]..|
|00002e20| a6 3b 45 51 55 57 26 33 | 30 31 37 3a 45 51 55 44 |.;EQUW&3|017:EQUD|
|00002e30| 26 36 36 36 36 33 43 31 | 38 3a 45 51 55 44 26 30 |&66663C1|8:EQUD&0|
|00002e40| 30 31 38 33 43 36 36 20 | 5c 20 7a 65 72 6f 20 20 |0183C66 |\ zero |
|00002e50| 20 20 20 20 20 5b 34 38 | 5d 0d 0e b0 3b 45 51 55 | [48|]...;EQU|
|00002e60| 57 26 35 42 31 37 3a 45 | 51 55 44 26 46 45 36 30 |W&5B17:E|QUD&FE60|
|00002e70| 33 30 30 30 3a 45 51 55 | 44 26 30 30 33 30 36 30 |3000:EQU|D&003060|
|00002e80| 46 45 20 5c 20 3c 2d 20 | 20 20 20 20 20 20 20 20 |FE \ <- | |
|00002e90| 5b 39 31 5d 0d 0e ba 3b | 45 51 55 57 26 35 43 31 |[91]...;|EQUW&5C1|
|00002ea0| 37 3a 45 51 55 44 26 36 | 45 36 30 36 30 36 30 3a |7:EQUD&6|E606060:|
|00002eb0| 45 51 55 44 26 30 46 30 | 43 30 36 30 33 20 5c 20 |EQUD&0F0|C0603 \ |
|00002ec0| 31 2f 32 20 20 20 20 20 | 20 20 20 5b 39 32 5d 0d |1/2 | [92].|
|00002ed0| 0e c4 3b 45 51 55 57 26 | 35 44 31 37 3a 45 51 55 |..;EQUW&|5D17:EQU|
|00002ee0| 44 26 37 46 30 36 30 43 | 30 30 3a 45 51 55 44 26 |D&7F060C|00:EQUD&|
|00002ef0| 30 30 30 43 30 36 37 46 | 20 5c 20 2d 3e 20 20 20 |000C067F| \ -> |
|00002f00| 20 20 20 20 20 20 5b 39 | 33 5d 0d 0e ce 3b 45 51 | [9|3]...;EQ|
|00002f10| 55 57 26 35 45 31 37 3a | 45 51 55 44 26 35 41 37 |UW&5E17:|EQUD&5A7|
|00002f20| 45 33 43 31 38 3a 45 51 | 55 44 26 30 30 31 38 31 |E3C18:EQ|UD&00181|
|00002f30| 38 31 38 20 5c 20 75 70 | 2d 61 72 72 6f 77 20 20 |818 \ up|-arrow |
|00002f40| 20 5b 39 34 5d 0d 0e d8 | 3b 45 51 55 57 26 35 46 | [94]...|;EQUW&5F|
|00002f50| 31 37 3a 45 51 55 44 26 | 33 36 37 46 33 36 33 36 |17:EQUD&|367F3636|
|00002f60| 3a 45 51 55 44 26 30 30 | 33 36 33 36 37 46 20 5c |:EQUD&00|36367F \|
|00002f70| 20 68 61 73 68 20 20 20 | 20 20 20 20 5b 39 35 5d | hash | [95]|
|00002f80| 0d 0e e2 3b 45 51 55 57 | 26 36 30 31 37 3a 45 51 |...;EQUW|&6017:EQ|
|00002f90| 55 44 26 46 46 30 30 30 | 30 30 30 3a 45 51 55 44 |UD&FF000|000:EQUD|
|00002fa0| 26 30 20 20 20 20 20 20 | 20 20 5c 20 75 6e 64 65 |&0 | \ unde|
|00002fb0| 72 6c 69 6e 65 20 20 5b | 39 36 5d 0d 0e ec 3c 45 |rline [|96]...<E|
|00002fc0| 51 55 57 26 37 42 31 37 | 3a 45 51 55 44 26 33 32 |QUW&7B17|:EQUD&32|
|00002fd0| 33 30 33 30 33 30 3a 45 | 51 55 44 26 30 32 30 46 |303030:E|QUD&020F|
|00002fe0| 30 41 30 36 20 5c 20 31 | 2f 34 20 20 20 20 20 20 |0A06 \ 1|/4 |
|00002ff0| 20 20 5b 31 32 33 5d 0d | 0e f6 3c 45 51 55 57 26 | [123].|..<EQUW&|
|00003000| 37 43 31 37 3a 45 51 55 | 44 26 33 36 33 36 33 36 |7C17:EQU|D&363636|
|00003010| 33 36 3a 45 51 55 44 26 | 30 30 33 36 33 36 33 36 |36:EQUD&|00363636|
|00003020| 20 5c 20 7c 7c 20 20 20 | 20 20 20 20 20 20 5b 31 | \ || | [1|
|00003030| 32 34 5d 0d 0f 00 3c 45 | 51 55 57 26 37 44 31 37 |24]...<E|QUW&7D17|
|00003040| 3a 45 51 55 44 26 31 39 | 37 30 31 38 37 30 3a 45 |:EQUD&19|701870:E|
|00003050| 51 55 44 26 30 31 30 37 | 30 35 37 33 20 5c 20 33 |QUD&0107|0573 \ 3|
|00003060| 2f 34 20 20 20 20 20 20 | 20 20 5b 31 32 35 5d 0d |/4 | [125].|
|00003070| 0f 0a 3c 45 51 55 57 26 | 37 45 31 37 3a 45 51 55 |..<EQUW&|7E17:EQU|
|00003080| 44 26 37 45 30 30 31 38 | 30 30 3a 45 51 55 44 26 |D&7E0018|00:EQUD&|
|00003090| 30 30 30 30 31 38 30 30 | 20 5c 20 64 69 76 69 64 |00001800| \ divid|
|000030a0| 65 20 20 20 20 20 5b 31 | 32 36 5d 0d 0f 14 3c 45 |e [1|26]...<E|
|000030b0| 51 55 57 26 37 46 31 37 | 3a 45 51 55 44 26 37 46 |QUW&7F17|:EQUD&7F|
|000030c0| 37 46 37 46 30 30 3a 45 | 51 55 44 26 30 30 37 46 |7F7F00:E|QUD&007F|
|000030d0| 37 46 37 46 20 5c 20 62 | 6c 6f 64 67 65 20 20 20 |7F7F \ b|lodge |
|000030e0| 20 20 5b 31 32 37 5d 0d | 0f 1e 0e 2e 6e 73 64 61 | [127].|....nsda|
|000030f0| 74 61 65 6e 64 0d 0f 28 | 09 41 4c 49 47 4e 0d 0f |taend..(|.ALIGN..|
|00003100| 3c 09 2e 73 61 76 65 0d | 0f 46 37 53 54 4d 46 44 |<..save.|.F7STMFD|
|00003110| 20 52 31 33 21 2c 7b 52 | 38 2d 52 31 30 2c 52 31 | R13!,{R|8-R10,R1|
|00003120| 34 7d 20 5c 73 61 76 65 | 20 72 65 67 73 20 26 20 |4} \save| regs & |
|00003130| 72 65 74 75 72 6e 20 61 | 64 64 72 65 73 73 0d 0f |return a|ddress..|
|00003140| 50 1a 4d 4f 56 20 52 38 | 2c 23 30 20 5c 58 20 63 |P.MOV R8|,#0 \X c|
|00003150| 6f 6f 72 64 20 3d 20 30 | 0d 0f 5a 1a 4d 4f 56 20 |oord = 0|..Z.MOV |
|00003160| 52 39 2c 23 30 20 5c 59 | 20 63 6f 6f 72 64 20 3d |R9,#0 \Y| coord =|
|00003170| 20 30 0d 0f 64 21 41 44 | 52 20 52 31 30 2c 76 61 | 0..d!AD|R R10,va|
|00003180| 72 61 64 64 20 5c 76 61 | 72 61 64 64 20 74 6f 20 |radd \va|radd to |
|00003190| 52 31 30 0d 0f 6e 30 4c | 44 52 20 52 31 30 2c 5b |R10..n0L|DR R10,[|
|000031a0| 52 31 30 5d 20 5c 70 6f | 69 6e 74 65 72 20 74 6f |R10] \po|inter to|
|000031b0| 20 73 61 76 65 64 20 73 | 63 72 65 65 6e 20 73 74 | saved s|creen st|
|000031c0| 61 72 74 0d 0f 78 08 2e | 6e 78 74 0d 0f 82 22 42 |art..x..|nxt..."B|
|000031d0| 4c 20 67 65 74 78 79 20 | 5c 67 65 74 20 63 68 61 |L getxy |\get cha|
|000031e0| 72 20 63 6f 64 65 20 61 | 74 20 58 2c 59 0d 0f 8c |r code a|t X,Y...|
|000031f0| 36 53 54 52 42 20 52 31 | 2c 5b 52 31 30 5d 2c 23 |6STRB R1|,[R10],#|
|00003200| 31 20 5c 73 61 76 65 20 | 63 6f 64 65 20 61 6e 64 |1 \save |code and|
|00003210| 20 69 6e 63 20 70 6f 69 | 6e 74 65 72 20 69 6e 20 | inc poi|nter in |
|00003220| 52 31 30 0d 0f 96 1b 41 | 44 44 20 52 38 2c 52 38 |R10....A|DD R8,R8|
|00003230| 2c 23 31 20 5c 58 20 3d | 20 58 20 2b 20 31 0d 0f |,#1 \X =| X + 1..|
|00003240| a0 1a 43 4d 50 20 52 38 | 2c 23 34 30 20 5c 69 73 |..CMP R8|,#40 \is|
|00003250| 20 58 20 3d 20 34 30 3f | 0d 0f aa 1d 42 43 43 20 | X = 40?|....BCC |
|00003260| 6e 78 74 20 5c 62 72 61 | 6e 63 68 20 69 66 20 58 |nxt \bra|nch if X|
|00003270| 20 3c 20 34 30 0d 0f b4 | 14 4d 4f 56 20 52 38 2c | < 40...|.MOV R8,|
|00003280| 23 30 20 5c 58 20 3d 20 | 30 0d 0f be 1b 41 44 44 |#0 \X = |0....ADD|
|00003290| 20 52 39 2c 52 39 2c 23 | 31 20 5c 59 20 3d 20 59 | R9,R9,#|1 \Y = Y|
|000032a0| 20 2b 20 31 0d 0f c8 1a | 43 4d 50 20 52 39 2c 23 | + 1....|CMP R9,#|
|000032b0| 32 35 20 5c 69 73 20 59 | 20 3d 20 32 35 3f 0d 0f |25 \is Y| = 25?..|
|000032c0| d2 1d 42 43 43 20 6e 78 | 74 20 5c 62 72 61 6e 63 |..BCC nx|t \branc|
|000032d0| 68 20 69 66 20 59 20 3c | 20 32 35 0d 0f dc 2f 4c |h if Y <| 25.../L|
|000032e0| 44 4d 46 44 20 52 31 33 | 21 2c 7b 52 38 2d 52 31 |DMFD R13|!,{R8-R1|
|000032f0| 30 2c 50 43 7d 20 5c 72 | 65 73 74 6f 72 65 20 72 |0,PC} \r|estore r|
|00003300| 65 67 73 20 26 20 65 78 | 69 74 0d 0f f0 0a 2e 67 |egs & ex|it.....g|
|00003310| 65 74 78 79 0d 0f fa 24 | 4d 4f 56 20 52 30 2c 23 |etxy...$|MOV R0,#|
|00003320| 33 31 3a 53 57 49 20 22 | 4f 53 5f 57 72 69 74 65 |31:SWI "|OS_Write|
|00003330| 43 22 20 5c ef 20 33 31 | 0d 10 04 22 4d 4f 56 20 |C" \. 31|..."MOV |
|00003340| 52 30 2c 52 38 3a 53 57 | 49 20 22 4f 53 5f 57 72 |R0,R8:SW|I "OS_Wr|
|00003350| 69 74 65 43 22 20 5c ef | 20 58 0d 10 0e 33 4d 4f |iteC" \.| X...3MO|
|00003360| 56 20 52 30 2c 52 39 3a | 53 57 49 20 22 4f 53 5f |V R0,R9:|SWI "OS_|
|00003370| 57 72 69 74 65 43 22 20 | 5c ef 20 59 20 69 65 20 |WriteC" |\. Y ie |
|00003380| 63 75 72 73 6f 72 20 74 | 6f 20 58 2c 59 0d 10 18 |cursor t|o X,Y...|
|00003390| 47 4d 4f 56 20 52 30 2c | 23 31 33 35 3a 53 57 49 |GMOV R0,|#135:SWI|
|000033a0| 20 22 4f 53 5f 42 79 74 | 65 22 20 5c 72 65 61 64 | "OS_Byt|e" \read|
|000033b0| 20 63 68 61 72 61 63 74 | 65 72 20 61 74 20 58 2c | charact|er at X,|
|000033c0| 59 20 28 6f 73 62 79 74 | 65 20 31 33 35 29 20 74 |Y (osbyt|e 135) t|
|000033d0| 6f 20 52 31 0d 10 22 16 | 4d 4f 56 20 50 43 2c 52 |o R1..".|MOV PC,R|
|000033e0| 31 34 20 5c 72 65 74 75 | 72 6e 0d 10 36 0c 2e 72 |14 \retu|rn..6..r|
|000033f0| 65 73 74 6f 72 65 0d 10 | 40 39 53 54 4d 46 44 20 |estore..|@9STMFD |
|00003400| 52 31 33 21 2c 7b 52 38 | 2c 52 31 30 2c 52 31 34 |R13!,{R8|,R10,R14|
|00003410| 7d 20 5c 73 61 76 65 20 | 52 38 2c 52 31 30 20 26 |} \save |R8,R10 &|
|00003420| 20 72 65 74 75 72 6e 20 | 61 64 64 72 65 73 73 0d | return |address.|
|00003430| 10 4a 32 53 57 49 20 22 | 4f 53 5f 57 72 69 74 65 |.J2SWI "|OS_Write|
|00003440| 53 22 20 5c eb 20 37 20 | 28 61 6c 73 6f 20 73 65 |S" \. 7 |(also se|
|00003450| 74 73 20 63 75 72 73 6f | 72 20 74 6f 20 30 2c 30 |ts curso|r to 0,0|
|00003460| 29 0d 10 54 1c 45 51 55 | 42 32 32 3a 45 51 55 42 |)..T.EQU|B22:EQUB|
|00003470| 37 3a 45 51 55 42 30 3a | 41 4c 49 47 4e 0d 10 5e |7:EQUB0:|ALIGN..^|
|00003480| 24 4d 4f 56 20 52 38 2c | 23 31 30 30 30 20 5c 73 |$MOV R8,|#1000 \s|
|00003490| 65 74 20 63 6f 75 6e 74 | 65 72 20 74 6f 20 39 39 |et count|er to 99|
|000034a0| 39 0d 10 68 10 53 55 42 | 20 52 38 2c 52 38 2c 23 |9..h.SUB| R8,R8,#|
|000034b0| 31 0d 10 72 21 41 44 52 | 20 52 31 30 2c 76 61 72 |1..r!ADR| R10,var|
|000034c0| 61 64 64 20 5c 76 61 72 | 61 64 64 20 74 6f 20 52 |add \var|add to R|
|000034d0| 31 30 0d 10 7c 30 4c 44 | 52 20 52 31 30 2c 5b 52 |10..|0LD|R R10,[R|
|000034e0| 31 30 5d 20 5c 70 6f 69 | 6e 74 65 72 20 74 6f 20 |10] \poi|nter to |
|000034f0| 73 63 72 65 65 6e 20 64 | 61 74 61 20 74 6f 20 52 |screen d|ata to R|
|00003500| 31 30 0d 10 86 08 2e 6e | 78 74 0d 10 90 42 4c 44 |10.....n|xt...BLD|
|00003510| 52 42 20 52 30 2c 5b 52 | 31 30 5d 2c 23 31 20 5c |RB R0,[R|10],#1 \|
|00003520| 67 65 74 20 6e 65 78 74 | 20 73 63 72 65 65 6e 20 |get next| screen |
|00003530| 62 79 74 65 20 74 68 65 | 6e 20 69 6e 63 20 70 6f |byte the|n inc po|
|00003540| 69 6e 74 65 72 20 69 6e | 20 52 31 30 0d 10 9a 22 |inter in| R10..."|
|00003550| 53 57 49 20 22 4f 53 5f | 57 72 69 74 65 43 22 20 |SWI "OS_|WriteC" |
|00003560| 5c ef 20 73 63 72 65 65 | 6e 20 62 79 74 65 0d 10 |\. scree|n byte..|
|00003570| a4 24 53 55 42 53 20 52 | 38 2c 52 38 2c 23 31 20 |.$SUBS R|8,R8,#1 |
|00003580| 5c 64 65 63 72 65 6d 65 | 6e 74 20 63 6f 75 6e 74 |\decreme|nt count|
|00003590| 65 72 0d 10 ae 24 42 4e | 45 20 6e 78 74 20 5c 67 |er...$BN|E nxt \g|
|000035a0| 6f 20 62 61 63 6b 20 69 | 66 20 6e 6f 74 20 66 69 |o back i|f not fi|
|000035b0| 6e 69 73 68 65 64 0d 10 | b8 2f 4c 44 4d 46 44 20 |nished..|./LDMFD |
|000035c0| 52 31 33 21 2c 7b 52 38 | 2c 52 31 30 2c 50 43 7d |R13!,{R8|,R10,PC}|
|000035d0| 20 5c 72 65 73 74 6f 72 | 65 20 72 65 67 73 20 26 | \restor|e regs &|
|000035e0| 20 65 78 69 74 0d 10 cc | 3e 2e 67 65 74 64 65 66 | exit...|>.getdef|
|000035f0| 20 5c 52 30 20 63 6f 6e | 74 61 69 6e 73 20 63 68 | \R0 con|tains ch|
|00003600| 61 72 2c 20 6f 6e 20 65 | 78 69 74 20 52 31 20 70 |ar, on e|xit R1 p|
|00003610| 6f 69 6e 74 73 20 74 6f | 20 64 65 66 6e 20 62 6c |oints to| defn bl|
|00003620| 6f 63 6b 0d 10 d6 14 53 | 54 4d 46 44 20 52 31 33 |ock....S|TMFD R13|
|00003630| 21 2c 7b 52 31 34 7d 0d | 10 e0 2c 41 44 52 20 52 |!,{R14}.|..,ADR R|
|00003640| 31 2c 64 65 66 6e 20 5c | 61 64 64 72 65 73 73 20 |1,defn \|address |
|00003650| 6f 66 20 64 65 66 6e 20 | 62 6c 6f 63 6b 20 74 6f |of defn |block to|
|00003660| 20 52 31 0d 10 ea 48 53 | 54 52 42 20 52 30 2c 5b | R1...HS|TRB R0,[|
|00003670| 52 31 2c 23 33 5d 21 20 | 5c 70 75 74 20 63 6f 64 |R1,#3]! |\put cod|
|00003680| 65 20 69 6e 20 64 65 66 | 6e 2b 33 20 26 20 61 64 |e in def|n+3 & ad|
|00003690| 64 20 33 20 74 6f 20 52 | 31 20 73 6f 20 74 68 61 |d 3 to R|1 so tha|
|000036a0| 74 20 72 65 73 75 6c 74 | 69 6e 67 0d 10 f4 3f 4d |t result|ing...?M|
|000036b0| 4f 56 20 52 30 2c 23 31 | 30 20 5c 64 65 66 6e 20 |OV R0,#1|0 \defn |
|000036c0| 61 66 74 65 72 20 4f 53 | 5f 57 6f 72 64 20 31 30 |after OS|_Word 10|
|000036d0| 20 69 73 20 77 6f 72 64 | 20 61 6c 69 67 6e 65 64 | is word| aligned|
|000036e0| 20 61 74 20 64 65 66 6e | 2b 34 0d 10 fe 46 53 57 | at defn|+4...FSW|
|000036f0| 49 20 22 4f 53 5f 57 6f | 72 64 22 20 5c 4f 73 5f |I "OS_Wo|rd" \Os_|
|00003700| 57 6f 72 64 20 31 30 3b | 20 72 65 61 64 20 63 68 |Word 10;| read ch|
|00003710| 61 72 20 64 65 66 6e 20 | 64 61 74 61 20 62 6c 6f |ar defn |data blo|
|00003720| 63 6b 20 61 64 64 72 65 | 73 73 20 69 6e 20 52 31 |ck addre|ss in R1|
|00003730| 0d 11 08 1b 4c 44 4d 46 | 44 20 52 31 33 21 2c 7b |....LDMF|D R13!,{|
|00003740| 50 43 7d 20 5c 72 65 74 | 75 72 6e 0d 11 1c 4c 2e |PC} \ret|urn...L.|
|00003750| 64 6f 75 62 6c 65 20 5c | 52 30 20 63 68 61 72 2c |double \|R0 char,|
|00003760| 20 52 35 20 64 6f 75 62 | 6c 65 5f 72 6f 77 20 3d | R5 doub|le_row =|
|00003770| 20 65 69 74 68 65 72 20 | 31 20 75 70 70 65 72 20 | either |1 upper |
|00003780| 6f 72 20 35 20 6c 6f 77 | 65 72 20 68 61 6c 66 20 |or 5 low|er half |
|00003790| 6f 66 20 63 68 61 72 0d | 11 26 36 53 54 4d 46 44 |of char.|.&6STMFD|
|000037a0| 20 52 31 33 21 2c 7b 52 | 32 2c 52 35 2c 52 31 34 | R13!,{R|2,R5,R14|
|000037b0| 7d 20 5c 73 61 76 65 20 | 72 65 67 73 20 26 20 72 |} \save |regs & r|
|000037c0| 65 74 75 72 6e 20 61 64 | 64 72 65 73 73 0d 11 30 |eturn ad|dress..0|
|000037d0| 45 42 4c 20 67 65 74 64 | 65 66 20 5c 67 65 74 20 |EBL getd|ef \get |
|000037e0| 63 68 61 72 20 64 65 66 | 69 6e 69 74 69 6f 6e 20 |char def|inition |
|000037f0| 74 6f 20 64 65 66 6e 20 | 2b 20 34 3b 20 52 31 20 |to defn |+ 4; R1 |
|00003800| 70 6f 69 6e 74 73 20 61 | 74 20 64 65 66 6e 20 2b |points a|t defn +|
|00003810| 20 33 0d 11 3a 1a 53 57 | 49 20 4f 53 5f 57 72 69 | 3..:.SW|I OS_Wri|
|00003820| 74 65 49 2b 32 33 20 5c | ef 20 32 33 0d 11 44 41 |teI+23 \|. 23..DA|
|00003830| 53 57 49 20 4f 53 5f 57 | 72 69 74 65 49 2b 31 32 |SWI OS_W|riteI+12|
|00003840| 38 20 5c ef 20 31 32 38 | 3b 20 64 65 66 69 6e 65 |8 \. 128|; define|
|00003850| 20 64 6f 75 62 6c 65 20 | 68 65 69 67 68 74 20 63 | double |height c|
|00003860| 68 61 72 20 61 73 20 6e | 6f 20 31 32 38 0d 11 4e |har as n|o 128..N|
|00003870| 1f 4d 4f 56 20 52 32 2c | 23 34 20 5c 6c 6f 6f 70 |.MOV R2,|#4 \loop|
|00003880| 20 63 6f 75 6e 74 65 72 | 20 3d 20 34 0d 11 58 0c | counter| = 4..X.|
|00003890| 2e 6e 78 64 69 67 69 74 | 0d 11 62 30 4c 44 52 42 |.nxdigit|..b0LDRB|
|000038a0| 20 52 30 2c 5b 52 31 2c | 52 35 5d 20 5c 67 65 74 | R0,[R1,|R5] \get|
|000038b0| 20 6e 65 78 74 20 62 79 | 74 65 20 6f 66 20 64 65 | next by|te of de|
|000038c0| 66 69 6e 69 74 69 6f 6e | 0d 11 6c 1b 53 57 49 20 |finition|..l.SWI |
|000038d0| 22 4f 53 5f 57 72 69 74 | 65 43 22 20 5c ef 20 62 |"OS_Writ|eC" \. b|
|000038e0| 79 74 65 0d 11 76 40 4c | 44 52 42 20 52 30 2c 5b |yte..v@L|DRB R0,[|
|000038f0| 52 31 2c 52 35 5d 20 5c | ef 20 73 61 6d 65 20 62 |R1,R5] \|. same b|
|00003900| 79 74 65 20 61 67 61 69 | 6e 3b 20 74 68 69 73 20 |yte agai|n; this |
|00003910| 67 69 76 65 73 20 64 6f | 75 62 6c 65 20 68 65 69 |gives do|uble hei|
|00003920| 67 68 74 0d 11 80 13 53 | 57 49 20 22 4f 53 5f 57 |ght....S|WI "OS_W|
|00003930| 72 69 74 65 43 22 0d 11 | 8a 21 41 44 44 20 52 35 |riteC"..|.!ADD R5|
|00003940| 2c 52 35 2c 23 31 20 5c | 69 6e 63 20 62 79 74 65 |,R5,#1 \|inc byte|
|00003950| 20 6f 66 66 73 65 74 0d | 11 94 23 53 55 42 53 20 | offset.|..#SUBS |
|00003960| 52 32 2c 52 32 2c 23 31 | 20 5c 64 65 63 20 6c 6f |R2,R2,#1| \dec lo|
|00003970| 6f 70 20 63 6f 75 6e 74 | 65 72 0d 11 9e 2a 42 4e |op count|er...*BN|
|00003980| 45 20 6e 78 64 69 67 69 | 74 20 5c 69 66 20 6e 6f |E nxdigi|t \if no|
|00003990| 74 20 66 69 6e 69 73 68 | 65 64 20 6c 6f 6f 70 20 |t finish|ed loop |
|000039a0| 62 61 63 6b 0d 11 a8 3f | 53 57 49 20 4f 53 5f 57 |back...?|SWI OS_W|
|000039b0| 72 69 74 65 49 2b 31 32 | 38 20 5c ef 20 31 32 38 |riteI+12|8 \. 128|
|000039c0| 20 69 65 20 68 61 6c 66 | 20 6f 66 20 64 6f 75 62 | ie half| of doub|
|000039d0| 6c 65 20 68 65 69 67 68 | 74 20 63 68 61 72 61 63 |le heigh|t charac|
|000039e0| 74 65 72 0d 11 b2 4b 4c | 44 4d 46 44 20 52 31 33 |ter...KL|DMFD R13|
|000039f0| 21 2c 7b 52 32 2c 52 35 | 2c 50 43 7d 5e 20 5c 72 |!,{R2,R5|,PC}^ \r|
|00003a00| 65 73 74 6f 72 65 20 72 | 65 67 73 3b 20 66 6c 61 |estore r|egs; fla|
|00003a10| 67 73 20 70 72 65 73 65 | 72 76 65 64 20 61 63 72 |gs prese|rved acr|
|00003a20| 6f 73 73 20 73 75 62 72 | 6f 75 74 69 6e 65 0d 11 |oss subr|outine..|
|00003a30| c6 0d 2e 73 61 76 65 63 | 68 61 72 0d 11 d0 36 53 |...savec|har...6S|
|00003a40| 54 4d 46 44 20 52 31 33 | 21 2c 7b 52 36 2c 52 37 |TMFD R13|!,{R6,R7|
|00003a50| 2c 52 31 34 7d 20 5c 73 | 61 76 65 20 72 65 67 73 |,R14} \s|ave regs|
|00003a60| 20 26 20 72 65 74 75 72 | 6e 20 61 64 64 72 65 73 | & retur|n addres|
|00003a70| 73 0d 11 da 25 4d 4f 56 | 20 52 37 2c 23 33 32 20 |s...%MOV| R7,#32 |
|00003a80| 5c 73 74 61 72 74 20 63 | 68 61 72 20 3d 20 33 32 |\start c|har = 32|
|00003a90| 20 74 6f 20 52 37 0d 11 | e4 1f 41 44 52 20 52 36 | to R7..|..ADR R6|
|00003aa0| 2c 76 61 72 61 64 64 20 | 5c 76 61 72 61 64 64 20 |,varadd |\varadd |
|00003ab0| 74 6f 20 52 36 0d 11 ee | 2c 4c 44 52 20 52 36 2c |to R6...|,LDR R6,|
|00003ac0| 5b 52 36 5d 20 5c 70 6f | 69 6e 74 65 72 20 74 6f |[R6] \po|inter to|
|00003ad0| 20 73 63 72 65 65 6e 64 | 61 74 61 20 74 6f 20 52 | screend|ata to R|
|00003ae0| 36 0d 11 f8 49 41 44 44 | 20 52 36 2c 52 36 2c 23 |6...IADD| R6,R6,#|
|00003af0| 26 34 30 30 20 5c 63 68 | 73 61 76 65 20 5c 61 64 |&400 \ch|save \ad|
|00003b00| 64 20 26 34 30 30 20 74 | 6f 20 67 65 74 20 73 74 |d &400 t|o get st|
|00003b10| 61 72 74 20 6f 66 20 63 | 68 61 72 61 63 74 65 72 |art of c|haracter|
|00003b20| 20 73 61 76 65 20 61 72 | 65 61 0d 12 02 0b 2e 6e | save ar|ea.....n|
|00003b30| 78 63 68 61 72 0d 12 0c | 1e 4d 4f 56 20 52 30 2c |xchar...|.MOV R0,|
|00003b40| 52 37 20 5c 63 68 61 72 | 20 63 6f 64 65 20 74 6f |R7 \char| code to|
|00003b50| 20 52 30 0d 12 16 47 42 | 4c 20 67 65 74 64 65 66 | R0...GB|L getdef|
|00003b60| 20 5c 67 65 74 20 63 68 | 61 72 20 64 65 66 69 6e | \get ch|ar defin|
|00003b70| 69 74 69 6f 6e 20 74 6f | 20 27 64 65 66 6e 2b 34 |ition to| 'defn+4|
|00003b80| 27 3b 20 52 31 20 70 6f | 69 6e 74 73 20 74 6f 20 |'; R1 po|ints to |
|00003b90| 27 64 65 66 6e 20 2b 20 | 33 27 0d 12 20 47 4c 44 |'defn + |3'.. GLD|
|00003ba0| 52 20 52 30 2c 5b 52 31 | 2c 23 31 5d 20 5c 54 68 |R R0,[R1|,#1] \Th|
|00003bb0| 69 73 20 49 53 20 77 6f | 72 64 20 61 6c 69 67 6e |is IS wo|rd align|
|00003bc0| 65 64 21 3b 20 67 65 74 | 20 66 69 72 73 74 20 66 |ed!; get| first f|
|00003bd0| 6f 75 72 20 62 79 74 65 | 73 20 6f 66 20 64 65 66 |our byte|s of def|
|00003be0| 6e 0d 12 2a 43 53 54 52 | 20 52 30 2c 5b 52 36 5d |n..*CSTR| R0,[R6]|
|00003bf0| 2c 23 34 20 5c 73 74 6f | 72 65 20 69 6e 20 73 61 |,#4 \sto|re in sa|
|00003c00| 76 65 20 61 72 65 61 20 | 61 6e 64 20 73 61 76 65 |ve area |and save|
|00003c10| 20 61 64 64 72 65 73 73 | 20 6f 66 66 73 65 74 20 | address| offset |
|00003c20| 62 79 20 34 0d 12 34 4b | 4c 44 52 20 52 30 2c 5b |by 4..4K|LDR R0,[|
|00003c30| 52 31 2c 23 35 5d 20 5c | 41 6c 73 6f 20 77 6f 72 |R1,#5] \|Also wor|
|00003c40| 64 20 61 6c 69 67 6e 65 | 64 21 3b 20 67 65 74 20 |d aligne|d!; get |
|00003c50| 73 65 63 6f 6e 64 20 66 | 6f 75 72 20 62 79 74 65 |second f|our byte|
|00003c60| 73 20 6f 66 20 64 65 66 | 69 6e 69 74 69 6f 6e 0d |s of def|inition.|
|00003c70| 12 3e 3f 53 54 52 20 52 | 30 2c 5b 52 36 5d 2c 23 |.>?STR R|0,[R6],#|
|00003c80| 34 20 5c 73 61 76 65 20 | 74 68 65 6d 2c 20 61 6e |4 \save |them, an|
|00003c90| 64 20 69 6e 63 20 73 61 | 76 65 20 61 64 64 72 65 |d inc sa|ve addre|
|00003ca0| 73 73 20 6f 66 66 73 65 | 74 20 62 79 20 34 0d 12 |ss offse|t by 4..|
|00003cb0| 48 21 41 44 44 20 52 37 | 2c 52 37 2c 23 31 20 5c |H!ADD R7|,R7,#1 \|
|00003cc0| 69 6e 63 20 63 68 61 72 | 20 6e 75 6d 62 65 72 0d |inc char| number.|
|00003cd0| 12 52 22 43 4d 50 20 52 | 37 2c 23 32 35 36 20 5c |.R"CMP R|7,#256 \|
|00003ce0| 72 65 61 63 68 65 64 20 | 63 68 61 72 20 32 35 36 |reached |char 256|
|00003cf0| 3f 0d 12 5c 22 42 4e 45 | 20 6e 78 63 68 61 72 20 |?..\"BNE| nxchar |
|00003d00| 5c 62 72 61 6e 63 68 20 | 62 61 63 6b 20 69 66 20 |\branch |back if |
|00003d10| 6e 6f 74 0d 12 66 2e 4c | 44 4d 46 44 20 52 31 33 |not..f.L|DMFD R13|
|00003d20| 21 2c 7b 52 36 2c 52 37 | 2c 50 43 7d 20 5c 72 65 |!,{R6,R7|,PC} \re|
|00003d30| 73 74 6f 72 65 20 72 65 | 67 73 20 26 20 65 78 69 |store re|gs & exi|
|00003d40| 74 0d 12 7a 10 2e 72 65 | 73 74 6f 72 65 63 68 61 |t..z..re|storecha|
|00003d50| 72 0d 12 84 36 53 54 4d | 46 44 20 52 31 33 21 2c |r...6STM|FD R13!,|
|00003d60| 7b 52 36 2c 52 37 2c 52 | 31 34 7d 20 5c 73 61 76 |{R6,R7,R|14} \sav|
|00003d70| 65 20 72 65 67 73 20 26 | 20 72 65 74 75 72 6e 20 |e regs &| return |
|00003d80| 61 64 64 72 65 73 73 0d | 12 8e 25 4d 4f 56 20 52 |address.|..%MOV R|
|00003d90| 37 2c 23 33 32 20 5c 73 | 74 61 72 74 20 63 68 61 |7,#32 \s|tart cha|
|00003da0| 72 20 3d 20 33 32 20 74 | 6f 20 52 37 0d 12 98 1f |r = 32 t|o R7....|
|00003db0| 41 44 52 20 52 36 2c 76 | 61 72 61 64 64 20 5c 76 |ADR R6,v|aradd \v|
|00003dc0| 61 72 61 64 64 20 74 6f | 20 52 36 0d 12 a2 2d 4c |aradd to| R6...-L|
|00003dd0| 44 52 20 52 36 2c 5b 52 | 36 5d 20 5c 70 6f 69 6e |DR R6,[R|6] \poin|
|00003de0| 74 65 72 20 74 6f 20 73 | 63 72 65 65 6e 20 64 61 |ter to s|creen da|
|00003df0| 74 61 20 74 6f 20 52 36 | 0d 12 ac 49 41 44 44 20 |ta to R6|...IADD |
|00003e00| 52 36 2c 52 36 2c 23 26 | 34 30 30 20 5c 63 68 73 |R6,R6,#&|400 \chs|
|00003e10| 61 76 65 20 5c 61 64 64 | 20 26 34 30 30 20 74 6f |ave \add| &400 to|
|00003e20| 20 67 65 74 20 73 74 61 | 72 74 20 6f 66 20 63 68 | get sta|rt of ch|
|00003e30| 61 72 61 63 74 65 72 20 | 73 61 76 65 20 61 72 65 |aracter |save are|
|00003e40| 61 0d 12 b6 0c 2e 72 65 | 73 74 6e 78 74 0d 12 c0 |a.....re|stnxt...|
|00003e50| 29 41 44 52 20 52 31 2c | 64 65 66 6e 20 5c 52 31 |)ADR R1,|defn \R1|
|00003e60| 20 3d 20 64 65 66 6e 20 | 62 75 66 66 65 72 20 61 | = defn |buffer a|
|00003e70| 64 64 72 65 73 73 0d 12 | ca 47 53 54 52 42 20 52 |ddress..|.GSTRB R|
|00003e80| 37 2c 5b 52 31 2c 23 33 | 5d 21 20 5c 73 74 6f 72 |7,[R1,#3|]! \stor|
|00003e90| 65 20 63 68 61 72 20 63 | 6f 64 65 20 61 74 20 64 |e char c|ode at d|
|00003ea0| 65 66 6e 2b 33 2c 20 74 | 68 65 6e 20 73 65 74 20 |efn+3, t|hen set |
|00003eb0| 52 31 20 3d 20 64 65 66 | 6e 20 2b 20 33 0d 12 d4 |R1 = def|n + 3...|
|00003ec0| 47 4c 44 52 20 52 30 2c | 5b 52 36 5d 2c 23 34 20 |GLDR R0,|[R6],#4 |
|00003ed0| 5c 67 65 74 20 66 69 72 | 73 74 20 66 6f 75 72 20 |\get fir|st four |
|00003ee0| 73 61 76 65 64 20 62 79 | 74 65 73 3b 20 69 6e 63 |saved by|tes; inc|
|00003ef0| 20 61 64 64 72 65 73 73 | 20 6f 66 66 73 65 74 20 | address| offset |
|00003f00| 62 79 20 34 0d 12 de 4a | 53 54 52 20 52 30 2c 5b |by 4...J|STR R0,[|
|00003f10| 52 31 2c 23 31 5d 20 5c | 54 68 69 73 20 49 53 20 |R1,#1] \|This IS |
|00003f20| 77 6f 72 64 20 61 6c 69 | 67 6e 65 64 21 3b 20 73 |word ali|gned!; s|
|00003f30| 74 6f 72 65 20 62 79 74 | 65 73 20 69 6e 20 64 65 |tore byt|es in de|
|00003f40| 66 6e 2b 34 20 74 6f 20 | 64 65 66 6e 2b 37 0d 12 |fn+4 to |defn+7..|
|00003f50| e8 48 4c 44 52 20 52 30 | 2c 5b 52 36 5d 2c 23 34 |.HLDR R0|,[R6],#4|
|00003f60| 20 5c 67 65 74 20 73 65 | 63 6f 6e 64 20 66 6f 75 | \get se|cond fou|
|00003f70| 72 20 73 61 76 65 64 20 | 62 79 74 65 73 3b 20 69 |r saved |bytes; i|
|00003f80| 6e 63 20 61 64 64 72 65 | 73 73 20 6f 66 66 73 65 |nc addre|ss offse|
|00003f90| 74 20 62 79 20 34 0d 12 | f2 4b 53 54 52 20 52 30 |t by 4..|.KSTR R0|
|00003fa0| 2c 5b 52 31 2c 23 35 5d | 20 5c 54 68 69 73 20 49 |,[R1,#5]| \This I|
|00003fb0| 53 20 77 6f 72 64 20 61 | 6c 69 67 6e 65 64 21 3b |S word a|ligned!;|
|00003fc0| 20 73 74 6f 72 65 20 62 | 79 74 65 73 20 69 6e 20 | store b|ytes in |
|00003fd0| 64 65 66 6e 2b 38 20 74 | 6f 20 64 65 66 6e 2b 31 |defn+8 t|o defn+1|
|00003fe0| 31 0d 12 fc 14 4d 4f 56 | 20 52 30 2c 23 32 33 20 |1....MOV| R0,#23 |
|00003ff0| 5c ef 20 32 33 0d 13 06 | 13 53 57 49 20 22 4f 53 |\. 23...|.SWI "OS|
|00004000| 5f 57 72 69 74 65 43 22 | 0d 13 10 4b 4d 4f 56 20 |_WriteC"|...KMOV |
|00004010| 52 30 2c 52 31 20 5c 52 | 30 20 70 6f 69 6e 74 73 |R0,R1 \R|0 points|
|00004020| 20 74 6f 20 64 65 66 6e | 2b 33 20 69 65 20 63 68 | to defn|+3 ie ch|
|00004030| 61 72 20 63 6f 64 65 20 | 66 6f 6c 6c 6f 77 65 64 |ar code |followed|
|00004040| 20 62 79 20 38 20 62 79 | 74 65 73 20 6f 66 20 64 | by 8 by|tes of d|
|00004050| 65 66 6e 0d 13 1a 30 4d | 4f 56 20 52 31 2c 23 39 |efn...0M|OV R1,#9|
|00004060| 20 5c 52 31 20 3d 20 39 | 3b 20 6e 75 6d 62 65 72 | \R1 = 9|; number|
|00004070| 20 6f 66 20 62 79 74 65 | 73 20 74 6f 20 6f 75 74 | of byte|s to out|
|00004080| 70 75 74 0d 13 24 2a 53 | 57 49 20 22 4f 53 5f 57 |put..$*S|WI "OS_W|
|00004090| 72 69 74 65 4e 22 20 5c | ef 20 62 79 74 65 73 20 |riteN" \|. bytes |
|000040a0| 6f 66 20 64 65 66 69 6e | 69 74 69 6f 6e 0d 13 2e |of defin|ition...|
|000040b0| 24 41 44 44 20 52 37 2c | 52 37 2c 23 31 20 5c 61 |$ADD R7,|R7,#1 \a|
|000040c0| 64 64 20 31 20 74 6f 20 | 63 68 61 72 20 63 6f 64 |dd 1 to |char cod|
|000040d0| 65 0d 13 38 22 43 4d 50 | 20 52 37 2c 23 32 35 36 |e..8"CMP| R7,#256|
|000040e0| 20 5c 72 65 61 63 68 65 | 64 20 63 68 61 72 20 32 | \reache|d char 2|
|000040f0| 35 36 3f 0d 13 42 1f 42 | 4e 45 20 72 65 73 74 6e |56?..B.B|NE restn|
|00004100| 78 74 20 5c 6e 6f 20 62 | 72 61 6e 63 68 20 62 61 |xt \no b|ranch ba|
|00004110| 63 6b 0d 13 4c 2b 4c 44 | 4d 46 44 20 52 31 33 21 |ck..L+LD|MFD R13!|
|00004120| 2c 7b 52 36 2c 52 37 2c | 50 43 7d 20 5c 73 61 76 |,{R6,R7,|PC} \sav|
|00004130| 65 20 72 65 67 73 20 26 | 20 65 78 69 74 0d 13 60 |e regs &| exit..`|
|00004140| 48 2e 62 6c 6f 64 67 65 | 20 5c 64 65 66 69 6e 69 |H.blodge| \defini|
|00004150| 74 69 6f 6e 20 66 6f 72 | 20 6d 6f 64 65 20 37 20 |tion for| mode 7 |
|00004160| 63 68 61 72 20 31 32 37 | 3b 20 64 65 66 69 6e 65 |char 127|; define|
|00004170| 20 61 73 20 63 68 61 72 | 20 31 32 38 20 26 20 6f | as char| 128 & o|
|00004180| 75 74 70 75 74 0d 13 6a | 14 53 54 4d 46 44 20 52 |utput..j|.STMFD R|
|00004190| 31 33 21 2c 7b 52 31 34 | 7d 0d 13 74 31 41 44 52 |13!,{R14|}..t1ADR|
|000041a0| 20 52 30 2c 62 6c 63 68 | 61 72 20 5c 61 64 64 72 | R0,blch|ar \addr|
|000041b0| 65 73 73 20 6f 66 20 64 | 61 74 61 20 66 6f 72 20 |ess of d|ata for |
|000041c0| 64 65 66 69 6e 69 74 69 | 6f 6e 0d 13 7e 29 4d 4f |definiti|on..~)MO|
|000041d0| 56 20 52 31 2c 23 31 31 | 20 5c 6e 75 6d 62 65 72 |V R1,#11| \number|
|000041e0| 20 6f 66 20 62 79 74 65 | 73 20 74 6f 20 6f 75 74 | of byte|s to out|
|000041f0| 70 75 74 0d 13 88 25 53 | 57 49 20 22 4f 53 5f 57 |put...%S|WI "OS_W|
|00004200| 72 69 74 65 4e 22 20 5c | 77 72 69 74 65 20 64 65 |riteN" \|write de|
|00004210| 66 69 6e 69 74 69 6f 6e | 0d 13 92 37 4c 44 4d 46 |finition|...7LDMF|
|00004220| 44 20 52 31 33 21 2c 7b | 50 43 7d 5e 20 5c 66 6c |D R13!,{|PC}^ \fl|
|00004230| 61 67 73 20 70 72 65 73 | 65 72 76 65 64 20 61 63 |ags pres|erved ac|
|00004240| 72 6f 73 73 20 73 75 62 | 72 6f 75 74 69 6e 65 0d |ross sub|routine.|
|00004250| 13 a6 38 2e 62 6c 63 68 | 61 72 20 5c 32 33 2c 31 |..8.blch|ar \23,1|
|00004260| 32 38 2c 30 2c 31 32 37 | 2c 31 32 37 2c 31 32 37 |28,0,127|,127,127|
|00004270| 2c 31 32 37 2c 31 32 37 | 2c 31 32 37 2c 30 20 74 |,127,127|,127,0 t|
|00004280| 68 65 6e 20 31 32 38 0d | 13 b0 3f 45 51 55 42 32 |hen 128.|..?EQUB2|
|00004290| 33 3a 45 51 55 42 31 32 | 38 3a 45 51 55 42 30 3a |3:EQUB12|8:EQUB0:|
|000042a0| 45 51 55 57 20 26 37 46 | 37 46 3a 45 51 55 44 26 |EQUW &7F|7F:EQUD&|
|000042b0| 37 46 37 46 37 46 37 46 | 3a 45 51 55 42 30 3a 45 |7F7F7F7F|:EQUB0:E|
|000042c0| 51 55 42 31 32 38 0d 13 | ba 09 41 4c 49 47 4e 0d |QUB128..|..ALIGN.|
|000042d0| 13 ce 3b 2e 64 65 66 6e | 20 45 51 55 44 30 3a 45 |..;.defn| EQUD0:E|
|000042e0| 51 55 44 30 3a 45 51 55 | 44 30 20 5c 62 75 66 66 |QUD0:EQU|D0 \buff|
|000042f0| 65 72 20 66 6f 72 20 64 | 65 66 69 6e 69 6e 67 20 |er for d|efining |
|00004300| 63 68 61 72 61 63 74 65 | 72 73 0d 13 d8 0b 2e 66 |characte|rs.....f|
|00004310| 69 6e 69 73 68 0d 13 e2 | 05 5d 0d 13 ec 05 ed 0d |inish...|.]......|
|00004320| 13 f6 05 e1 0d ff | |...... | |
+--------+-------------------------+-------------------------+--------+--------+